偶然发现, PS 保存的 BMP 和 MSPaint 保存的 BMP 字节数略有不同

2021-03-25 16:02:50 +08:00
 acess
BMP1 是 Photoshop 保存的,1920x1080,24bit,文件大小 6,220,856 字节。
BMP2 是 MSPaint 创建的,也是 1920x1080,24bit,但是文件大小是 6,220,854 字节,比 BMP1 少了 2 个字节。
用十六进制编辑器打开,发现 BMP1 和 BMP2 两个文件在 bfSize 和 biSizeImage 这两个地方不一样,填的是各自的数值(修正:BMP1 比 BMP2 的数值多 2 )。另外 BMP1 填写了 biXPelsPerMeter 和 biYPelsPerMeter ;而 BMP2 在这两个地方只填了 0 。最后 BMP1 比 BMP2 在文件末尾多了 2 个 0x00 。

把 BMP1 用 MSPaint 打开后,另存为 BMP3 (还是 1920x1080,24bit ),文件大小是 6,220,854 字节,和 BMP2 一样,比 BMP1 少了 2 个字节。
十六进制编辑器里,BMP3 的 bfSize 填了和 BMP2 一样的数值,但是 biSizeImage 填了 0 ; biXPelsPerMeter 和 biYPelsPerMeter 则没有填 0,数值和 BMP1 一样。

edit:我感觉 MSPaint 的字节数(包括文件总大小以及 bfSize 和 biSizeImage 两个数值)才是正确的,不过 Photoshop 多 2 个字节貌似也没影响。另外就是 PS 保存的 BMP 用 MSPaint 打开另存为后有点玄学……至于 biXPelsPerMeter 和 biYPelsPerMeter,应该是用来 DPI 缩放的?貌似 MSPaint 里也有 DPI 选项,不过好像没保存下来,只有打开 PS 的 BMP 再保存时会保留原先的 biXPelsPerMeter 和 biYPelsPerMeter 。
2145 次点击
所在节点    Photoshop
0 条回复

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

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

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

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

© 2021 V2EX