Image 找出PNG是8还是24?

Image 找出PNG是8还是24?,image,encoding,png,bit,Image,Encoding,Png,Bit,有没有办法确定PNG是8型还是24型?我试过使用windows、fireworks和photoshop,但我想不出来。 谢谢在Photoshop中打开它,检查顶部栏上写的内容。如果它说“索引”,那么它被保存为8位PNG,如果它说“RGB/8”,那么您的PNG是32位的。 或者,您可以打开图像/模式菜单,对于8位菜单,它将是“索引颜色”,而对于32位菜单,它将是“RGB颜色” 另一种不用打开文件就能快速判断的方法是查看图像中是否有平滑的渐变透明胶片。8位PNG没有透明渐变-它要么是完全不透明的,要

有没有办法确定PNG是8型还是24型?我试过使用windows、fireworks和photoshop,但我想不出来。
谢谢

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

另一种不用打开文件就能快速判断的方法是查看图像中是否有平滑的渐变透明胶片。8位PNG没有透明渐变-它要么是完全不透明的,要么是完全透明的(两者之间没有)

(适用于没有Photoshop的用户)

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

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

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

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

  • 0:灰色,
  • 2:rgb
  • 3:索引(彩色映射)
  • 4:灰色+阿尔法,或
  • 6:rgba
如果bitdepth为8,colortype为3,则为PNG8;如果bitdepth为8,colortype为2,则为PNG24

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

A PNG8:

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

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

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

$ file image-1.png

PNG image data, 3840 x 2160, 8-bit/color RGBA, non-interlaced
因此,根据上面的输出,image-1.png有四个通道(RGBA-红、绿、蓝、阿尔法)。每个通道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

使用。它有点不透明,但一旦你通过了
png\u read\u png()
png\u get\u bit\u depth()
png\u get\u channels()
,你就有了你需要的。如果你想要一个命令行工具,请查看(特别是
identify
命令)。我要说的是,我喜欢你的图标,Snuggles博士是一个童年的最爱:-)我最近发现他们几年前制作了一些新的带有“新图形”的剧集,但据我所知,它的外观和感觉与旧的书信体相似,所以今天我学到了一些新的东西;-)现在就去谷歌查找那些剧集吧!(离题):现在我记得那是什么了,那只是我看过的预告片()。没有新的剧集(我没有发现):(但这不是关于PNG24的问题吗?这应该是公认的答案。我保证几乎所有来到这里的人都这么做了,因为他们想知道如何用代码来做。@tayoung不,这正是我需要的。