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

2013-07-08 13:52:25 +08:00
 kenneth
想提高一下获取图片大小的程序的效率,不想把图片下载,或者读取了才知道大小,大家有没有快速获得图片大小的方法。
10260 次点击
所在节点    Python
46 条回复
timonwong
2013-07-09 12:08:27 +08:00
@centerqi
BMP和PNG都还好说:
BMP的width在0x12, height在0x16 (u32, little endian)
PNG的width在0x10, height在0x14 (u32, big endian)

JPEG稍微麻烦点,位置不固定,因为在magic header 0xff, 0xd8后一般都会跟个JFIF segment, 用于thumbnail,需要跳过(当然也不大,thumbnail最大也就255x255, 24bit RGB存放,无压缩),然后再读取width和height。
est
2013-07-09 12:27:52 +08:00
@centerqi 快速获取图片大小,HTTP HEAD一下和DL ML有嘛关系?真是自己玩了几下hadoop的锤子,啥事情都像钉子了。

你看没看过 @phuslu 的代码?获取真实长宽也不是多复杂的事情,各种图片格式头提取也就几行代码。
est
2013-07-09 12:36:36 +08:00
> 你就能得到一个系数,我们每天抓取这么多图片,都是这样弄的,求这个系数很简单的,就是一个 y=ax的问题

> 就是通过大量的数据,能训练机器,去找到这个系数。

大哥你这个系数是矢量还是啥?

content-length(标量) x 系数标量 = 标量,LZ想要的是 (长、宽) 这个矢量啊大哥。

你这个系数最多能够获得图片的 像素值 (pixels),而且是 4:3 或者 16:9 常见 照片 的比例。

对于 长微博,全景图,截屏,素材 等等图片肯定都是无效的。

图片 ≠ 照片

btw 我记得以前 @livid 的 footbig 就是只允许 照片,禁止 图片的。可惜这个项目终止了
raptor
2013-07-09 12:59:41 +08:00
@est 就别提footbig了……当年我还用得挺多的,传了不少片子……
ETiV
2013-07-09 13:23:14 +08:00
图片服务器那边算出图片的宽高. 写进HTTP header. 你这边从HTTP header读.
jasontse
2013-07-09 21:29:07 +08:00
@centerqi 完全不可能凭经验去学习 大尺寸的纯色图片一样可以压缩到很小

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

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

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

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

© 2021 V2EX