Има ли начин да разберете дали PNG е тип 8 или 24? Опитах с windows, фойерверки и фотошоп, но не мога да разбера това. Благодаря
Разберете дали PNG е 8 или 24?
Отговори (4)
Отворете го във Photoshop и вижте какво пише в горната лента. Ако пише "индекс", значи е записан като 8-битов PNG, ако пише "RGB/8", значи вашият PNG е 32-битов. Като алтернатива можете да отворите менюто Изображение/Режим и за 8-битов ще бъде "Индексиран цвят", докато за 32-битов - "RGB цвят".
Друг наистина бърз начин да разберете, без да отваряте файла, е да видите дали има плавен градиент прозрачност в изображението. 8-битовите png файлове нямат прозрачни градиенти - те са или напълно непрозрачни, или напълно прозрачни (нищо между тях).
(за тези, които нямат Photoshop)
Как да идентифицирате битовата дълбочина за файлове с изображения в Windows:
*Right click* image file > Properties > Details > Bit depth
Най-бързият начин е просто да надникнете в байтове 24 и 25 в PNG файла. Те съдържат битова дълбочина (1, 2, 4, 8 или 16) и тип цвят
- 0: сиво,
- 2: rgb,
- 3: индексиран (с цветова карта),
- 4: сиво+алфа, или
- 6: rgba.
Ако битовата дълбочина е 8 и цветовият тип е 3, имате PNG8, а ако битовата дълбочина е 8 и цветният тип е 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
Просто добавете колоната „Дълбочина на битовете“ и тя трябва да ви покаже дълбочината на битовете направо в изгледа с подробности във File Explorer.
В базирана на 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). Няма алфа канал. Така че е във формат PNG‑24.
Има и команда identify
от ImageMagick, която може да се използва за извличане на по-подробна информация за файловете с изображения.
sudo apt-get install imagemagick
identify -verbose image.png
png_read_png()
иpng_get_bit_depth()
иpng_get_channels()
, имате това, от което се нуждаете. Ако искате инструмент за команден ред, разгледайте ImageMagick (по-специално командатаidentify
). - person Kerrek SB   schedule 08.06.2011