jpg 图片 SOF0 块的位置是不固定的吗?如何快速获取 SOF0 块获取图像宽高?

2019-09-29 18:07:14 +08:00
 vevlins

想获取图片头信息拿到宽高信息,其他常见的格式如 png、gif 的宽高位置都是在固定位,只有 jpg 比较特殊。

tfif 的一般在比较靠前的位置大概 500 位之内,exif 的前面是 app0_exif 等块,SOF0 要排到两三千开外了。

只能通过获取 marker 的长度一个一个跳过直到找到 SOF0 块吗?另外没有 SOF0 只有 SOF1/SOF2 的原因是什么?这三个块只能同时存在一个吗?

3123 次点击
所在节点    算法
1 条回复
vevlins
2019-09-29 18:12:12 +08:00
> 另外没有 SOF0 只有 SOF1/SOF2 的原因是什么?这三个块只能同时存在一个吗?

这个问题明白了,是跟渐进式等 jpg 格式有关,应该是只能存在一个。

```golang
sof0Marker = 0xc0 // Start Of Frame (Baseline Sequential).
sof1Marker = 0xc1 // Start Of Frame (Extended Sequential).
sof2Marker = 0xc2 // Start Of Frame (Progressive).
```

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

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

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

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

© 2021 V2EX