V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acess
V2EX  ›  Photoshop

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

  •  
  •   acess · 2021-03-25 16:02:50 +08:00 · 2111 次点击
    这是一个创建于 1099 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1186 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:26 · PVG 02:26 · LAX 11:26 · JFK 14:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.