Выясни, если PNG 8 или 24? - PullRequest
7 голосов
/ 08 июня 2011

Есть ли способ узнать, является ли PNG тип 8 или 24? Я пробовал с окнами, фейерверками и фотошопом, но я не могу понять это. Спасибо

Ответы [ 3 ]

12 голосов
/ 16 сентября 2016

Самый быстрый способ - просто посмотреть на байты 24 и 25 в файле PNG.Они содержат битовую глубину (1, 2, 4, 8 или 16) и тип цвета

  • 0: серый,
  • 2: rgb,
  • 3: indexed (colormapped),
  • 4: серый + альфа или
  • 6: rgba.

Если битовая глубина равна 8, а цветовой тип равен 3, у вас естьPNG8, а если bitdepth равен 8, а colortype равен 2, у вас есть PNG24.

На платформе * nix команда "file" сделает это за вас, например,

APNG8:

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
8 голосов
/ 08 июня 2011

Откройте его в Photoshop и проверьте, что написано на верхней панели. Если он говорит «индекс», то он был сохранен как 8-битный PNG, если он говорит «RGB / 8», тогда ваш PNG является 32-битным. В качестве альтернативы вы можете открыть меню «Изображение / Режим», и для 8-битного это будет «Индексированный цвет», а для 32-битного - «Цвет RGB».

Еще один очень быстрый способ определить, не открывая файл, - посмотреть, есть ли на изображении плавные градиентные пленки. 8-битные PNG не имеют прозрачных градиентов - они либо полностью непрозрачные, либо полностью прозрачные (ничего между ними). ​​

(для тех, у кого нет фотошопа)

Как определить битовую глубину для файлов изображений в Windows:

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

Identify image bit depth on Windows

0 голосов
/ 12 августа 2016

Просто добавьте столбец «Глубина в битах», и он покажет вам глубину в битах прямо в окне сведений в проводнике файлов.

...