Python如何快速获得图片的大小,但是不要下载。

2013-07-08 13:52:25 +08:00
 kenneth
想提高一下获取图片大小的程序的效率,不想把图片下载,或者读取了才知道大小,大家有没有快速获得图片大小的方法。
10245 次点击
所在节点    Python
46 条回复
pubby
2013-07-08 19:53:40 +08:00
根据各种图片格式,一般只要前面几十个字节就能得到 width ,height数据,不需要下载整张图。

以前拿php的getimagesize()的源代码改过一个的,识别算法都在里头。
guangwong
2013-07-08 20:35:25 +08:00
读出文件头来就完了= =
likuku
2013-07-09 01:25:37 +08:00
@centerqi 前两天就搞出来1
M和193K的jpg还真一样长宽的...同一张图。
centerqi
2013-07-09 10:26:55 +08:00
最好用数据说话,你去淘宝抓取 50w张图片,然后用这种方法去解决,准备率和招回率看能达到多少?
不要举几个特殊的例子,按你们的说法,做图片相似性计算,图片提取就完全没法做了,因为都会有 bad case.
love
2013-07-09 10:55:54 +08:00
django源码里面有读文件头得图片长宽的代码段(用到了PIL),具体在图片字段代码这里
est
2013-07-09 10:57:13 +08:00
@centerqi 你家的相似性计算可以直接通过 content-length 搞定?跪求代码demo。

长宽是二维矢量,长度是一维标量啊大哥。
centerqi
2013-07-09 11:11:02 +08:00
楼上好好读读文字,我是用这种方式去做相似计算吗?我是举一下列子,就是通过大量的数据,能训练机器,去找到这个系数。
phuslu
2013-07-09 11:13:03 +08:00
@centerqi 汗,找到所谓“系数”之后呢, 你莫非认为所有的图片的长宽比是一样的?
centerqi
2013-07-09 11:17:06 +08:00
用content-length去做相似计算,你这是什么思维啊? 不要误解有木有,把话读完读懂再来喷,好不好?
我很喜欢你这种思维,欢迎私喷,我的邮箱
\u0063\u0065\u006E\u0074\u0065\u0072\u0071\u0069\u0040\u0067\u006D\u0061\u0069\u006C\u002E\u0063\u006F\u006D
centerqi
2013-07-09 11:18:50 +08:00
@est \u0032\u0039\u0030\u0035\u0036\u0030\u0035\u0033\u0032 我的qq,私聊
phuslu
2013-07-09 11:20:13 +08:00
@centerqi 别回避我的问题。
ps: 另外你这个所谓 bad case 不是你声称的很少见,而是很常见。
phuslu
2013-07-09 11:20:55 +08:00
@centerqi 晕,我以为你在和我说话。。。
binux
2013-07-09 11:20:56 +08:00
@est 当你面对数以千计的数据量的时候,确实就是这么做的
centerqi
2013-07-09 11:26:11 +08:00
@binux 我刚才仔细看了一下提问者的问题,可能我们理解都有误差,我是用我的职业思维去解决,提问者的想法是用什么简单的办法,快速获取图片大小,而我们想到的就是 DL,ML之类的,所以会有误解。
phuslu
2013-07-09 11:29:15 +08:00
@centerqi 楼主的需求我也做过,所以才写出来 imgsz 这个库。
一般来说获取远程图片的分辨率之后,接下来的处理是展示或者分类。
展示的话,一般就是瀑布流。分类的话,就是按不同的长宽比分类(16:9, 4:3)等等。
前者典型的应用就是 BT 工厂, 后者的话,各种壁纸站点。
binux
2013-07-09 11:34:16 +08:00
@centerqi 你是WD的?
centerqi
2013-07-09 11:35:15 +08:00
@phuslu 不错,这种思维确实有可取之处,并且会精确不少,想了解一下,一般图片的头有多少字节,这个是标准的吗?
centerqi
2013-07-09 11:36:32 +08:00
@binux 这个称呼大高雅了,用内部的话叫做 矿工
centerqi
2013-07-09 11:39:56 +08:00
@binux 欢迎加我qq哈,qq在帖子里有。
binux
2013-07-09 11:49:43 +08:00
@centerqi 上班禁止用QQ,虽然对你已经没有这个限制了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX