如果PNG是8或24,那么退出?

时间:2011-06-08 11:41:13

标签: image encoding png bit

有没有办法找出PNG是8还是24型?我试过窗户,烟花和Photoshop,但我无法弄清楚这一点。 谢谢

4 个答案:

答案 0 :(得分:11)

最快的方法是只查看PNG文件中的字节24和25。它们包含位深度(1,2,4,8或16)和颜色类型

  • 0:灰色,
  • 2:rgb,
  • 3:索引(colormapped),
  • 4:灰色+ alpha或
  • 6:rgba。

如果bitdepth为8且colortype为3,则您有PNG8,如果bitdepth为8且colortype为2,则您有PNG24。

在* nix平台上,“file”命令将为您执行此操作,例如,

PNG8:

glenn.rp> file logo.png
logo.png: PNG image data, 640 x 480, 8-bit colormap, non-interlaced

PNG24:

glenn.rp> file rose.png
rose.png: PNG image data, 70 x 46, 8-bit/color RGB, non-interlaced

答案 1 :(得分:8)

在Photoshop中打开它并检查顶部栏上的内容。如果它显示“index”,那么它已被保存为8位PNG,如果它显示为“RGB / 8”,那么你的PNG是32位PNG。 或者你可以打开图像/模式菜单,对于8位的菜单,它将是“索引颜色”,而对于32位的菜单 - “RGB颜色”。

在不打开文件的情况下另一种非常快速的方法是查看图像中是否有任何平滑的渐变透明度。 8位png没有透明渐变 - 它完全不透明或完全透明(两者之间没有)。

  

(对于那些没有Photoshop的人)

如何识别Windows上图像文件的位深度:

*Right click* image file > Properties > Details > Bit depth

Identify image bit depth on Windows

答案 2 :(得分:0)

只需添加“位深度”列,它就会在文件资源管理器的详细信息视图中显示位深度。

答案 3 :(得分:0)

在基于 Linux 的环境中,可以使用 file 命令。

$ file image-1.png

PNG image data, 3840 x 2160, 8-bit/color RGBA, non-interlaced

因此根据上面的输出,image-1.png 有四个通道(RGBA - 红色、绿色、蓝色、alpha)。每个通道 8 位,总和为 32 位

$ file image-2.png

PNG image data, 3840 x 2160, 8-bit/color RGB, non-interlaced

image-2.png 只有 3 个通道 (RGB)。它没有 alpha 通道。所以它是 PNG-24 格式。

还有来自 ImageMagick 的 identify 命令,可用于检索有关图像文件的更多详细信息。

sudo apt-get install imagemagick
identify -verbose image.png