gpt4 book ai didi

image - 如何将 PNG 转换为 1 位 BMP

转载 作者:行者123 更新时间:2023-12-04 02:11:50 26 4
gpt4 key购买 nike

因此,我试图了解 PNG 到 BMP 的转换实际上是如何发生的。我使用在线工具创建了以下 8x8 像素的 PNG:

enter image description here

然后我在 OSX 终端中使用 ImageMagik 工具执行了转换:

$转换-monochrome pic.png pic.bmp

之后,我对图像进行了 hexdump:

$ hexdump -C pic.bmp
00000000 42 4d 4a 01 00 00 00 00 00 00 8a 00 00 00 7c 00 |BMJ......|.|
00000010 00 00 08 00 00 00 08 00 00 00 01 00 18 00 00 00 |................|
00000020 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 |................|
00000040 00 00 00 00 00 ff 42 47 52 73 8f c2 f5 28 51 b8 |......BGRs...(Q.|
00000050 1e 15 1e 85 eb 01 33 33 33 13 66 66 66 26 66 66 |......333.fff&ff|
00000060 66 06 99 99 99 09 3d 0a d7 03 28 5c 8f 32 00 00 |f.....=...(\.2..|
00000070 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 |................|
00000080 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................|
00000090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00000130 ff ff 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000140 ff ff ff ff ff ff ff ff ff ff |.........|
0000014a

所以,显然我们有一个从 0x00 到 0x8C 的 BMP header 。然后我们有白色像素的 FF 和黑色像素的 00。这一切都说得通,但输出的结构却并非如此。到目前为止,似乎有一个3比1的比例。每个像素 3 个字节。我假设这意味着黑色、白色、无色?

我需要完全理解为什么每个像素有 3 个字节而不是 2 个字节。理想情况下,我希望每个像素都使用二进制 1 或 0。有没有办法做到这一点?如果没有,有人可以解释字节的布局吗?具体来说:为什么 3 个 00 位于 0x132 - 0x134 而不是最开始?

谢谢

最佳答案

事实上,如果使用 BMP3 或 BMP2 格式,Imagemagick 确实支持 1 位 BMP,但不支持 BMP4,它只是 BMP。所以如果你想要每个 channel 1 位深度,那么做

输入:

enter image description here

convert image.png -depth 1 BMP3:result.bmp

enter image description here

如果你想要整个图像的 1 位深度(即二进制),那么做

convert image.png -depth 1 -type bilevel BMP3:result2.bmp

enter image description here

或者

convert image.png -depth 1 -threshold 50% BMP3:result3.bmp

enter image description here

关于image - 如何将 PNG 转换为 1 位 BMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com