FInd out if PNG is 8 or 24?

前端 未结 3 1943
太阳男子
太阳男子 2020-12-19 03:35

Is there a way to find out if a PNG is the 8 or 24 type? Ive tried with windows, fireworks and photoshop but I cant figure this out. Thanks

相关标签:
3条回答
  • 2020-12-19 03:46

    Open it in Photoshop and check what's written on the top bar. If it says "index", then it has been saved as 8-bit PNG, if it says "RGB/8" then your PNG is a 32-bit one. Alternatively you can open Image/Mode menu and for an 8-bit one it would be "Indexed color", while for a 32-bit one - "RGB color".

    Another really quick way to tell without opening the file is to see if there is any smooth gradient transparencies in the image. 8 bit pngs don't have transparent gradients - it's either fully opaque or fully transparent (nothing in between).

    (For those who don't have Photoshop)

    Howto identify bit depth for image files on Windows:

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

    0 讨论(0)
  • 2020-12-19 03:59

    Just add the 'Bit Depth' column and it should show you the Bit depth right in the details view in file explorer.

    0 讨论(0)
  • 2020-12-19 04:06

    The quickest way is to just peek at bytes 24 and 25 in the PNG file. They contain the bit depth (1, 2, 4, 8, or 16) and color type

    • 0: gray,
    • 2: rgb,
    • 3: indexed (colormapped),
    • 4: gray+alpha, or
    • 6: rgba.

    If the bitdepth is 8 and the colortype is 3 you have a PNG8, and if the bitdepth is 8 and colortype is 2 you have a PNG24.

    On a *nix platform, the "file" command will do this for you, e.g.,

    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
    
    0 讨论(0)
提交回复
热议问题