मुझे कैसे पता चलेगा कि कोई PNG PNG-8 या PNG-24 है?


जवाबों:


25

fileअन्य उत्तर में आदेश का उपयोग कभी कभी असंगत है। उदाहरण के लिए:

───────────────────────────────────────────────────────────────────────────────
rick@dell:~/Pictures$ file "256 colors.jpg"
256 colors.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, baseline, precision 8, 800x800, frames 3
───────────────────────────────────────────────────────────────────────────────
rick@dell:~/Pictures$ file "vnStat.png"
vnStat.png: PNG image data, 410 x 121, 8-bit/color RGB, non-interlaced

पहला उदाहरण संभवतः एक कैमरा चित्र है और दूसरा उदाहरण मैंने स्क्रीन कैप्चर का उपयोग करके लिया है।

identifyआदेश है, जो मेरा उत्तर पर आधारित है, सभी उदाहरणों में सही ढंग से काम करने के लिए प्रकट होता है। उदाहरण के लिए ऊपर दिए गए पहले उदाहरण पर परीक्षण:

rick@dell:~/Pictures$ identify "256 colors.jpg"
256 colors.jpg JPEG 800x800 800x800+0+0 8-bit sRGB 45KB 0.000u 0:00.000

मेरे पास ImageMagick स्थापित है जो मुझे उपयोग करने की अनुमति देता है:

$ identify -verbose vnStat.png
Image: vnStat.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 410x121+0+0
  Units: Undefined
  Type: TrueColor
  Endianess: Undefined
  Colorspace: sRGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Pixels: 49610
    Red:
      min: 0 (0)
      max: 255 (1)
      mean: 12.0814 (0.0473779)
      standard deviation: 46.7032 (0.18315)
      kurtosis: 18.8998
      skewness: 4.49862
    Green:
      min: 0 (0)
      max: 255 (1)
      mean: 21.1804 (0.0830606)
      standard deviation: 57.5336 (0.225622)
      kurtosis: 6.68226
      skewness: 2.82613
    Blue:
      min: 0 (0)
      max: 255 (1)
      mean: 14.2606 (0.0559237)
      standard deviation: 50.2969 (0.197243)
      kurtosis: 13.5573
      skewness: 3.85914
  Image statistics:
    Overall:
      min: 0 (0)
      max: 255 (1)
      mean: 15.8408 (0.0621207)
      standard deviation: 51.7078 (0.202776)
      kurtosis: 11.8528
      skewness: 3.62638
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.64,0.33)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.06)
    white point: (0.3127,0.329)
  Background color: white
  Border color: srgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 410x121+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Properties:
    date:create: 2017-01-24T20:04:50-07:00
    date:modify: 2017-01-24T20:04:50-07:00
    png:IHDR.bit-depth-orig: 8
    png:IHDR.bit_depth: 8
    png:IHDR.color-type-orig: 2
    png:IHDR.color_type: 2 (Truecolor)
    png:IHDR.interlace_method: 0 (Not interlaced)
    png:IHDR.width,height: 410, 121
    png:sRGB: intent=0 (Perceptual Intent)
    png:text: 1 tEXt/zTXt/iTXt chunks were found
    signature: e9f31b79da6ce46cdea5da21ae8648496faa181b0621098aa2dbbdff4a9a4502
    Software: gnome-screenshot
  Artifacts:
    filename: vnStat.png
    verbose: true
  Tainted: False
  Filesize: 14.7KB
  Number pixels: 49.6K
  Pixels per second: 0B
  User time: 0.000u
  Elapsed time: 0:01.000
  Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org

सारांश रिपोर्ट के लिए सभी मापदंडों को छोड़ दें:

$ identify vnStat.png
vnStat.png PNG 410x121 410x121+0+0 8-bit sRGB 14.7KB 0.000u 0:00.000

vnStat.pngअपने खुद के .pngफ़ाइल नाम के साथ बदलें और यदि आवश्यक हो तो पथ के साथ इसे पेश करें।


PNG-24 बनाम PNG-32 को समझने के लिए SuperUser का यह उत्तर इसे संक्षेप में प्रस्तुत करता है:

यदि आपकी छवि 24 बिट की है तो आप देखेंगे:

Channel depth:
  red: 8-bit
  green: 8-bit
  blue: 8-bit

यदि आपकी पीएनजी छवि 32 बिट है तो आप देखेंगे:

Channel depth:
  red: 8-bit
  green: 8-bit
  blue: 8-bit
  alpha: 8-bit

हालाँकि यह उत्तर पूर्ण नहीं है क्योंकि 8-बिट रंग रेड, ग्रीन और ब्लू के लिए 8 बिट्स भी दिखाता है, केवल एक रंग पैलेट का उपयोग चयन की संख्या को सीमित करने के लिए किया जाता है (जैसे कि अच्छे पुराने विंडोज 2.0 में)।


विकिपीडिया गहराई लेख से इन तीन चित्रों की जांच करें :

8_bit.png

फ़ाइल का नाम: 8_bit.png

का उपयोग करते हुए:

identify -verbose  8_bit.png | grep colors
    png:PLTE.number_colors: 249

हम देखते हैं कि 249 रंगों का उपयोग किया जाता है। 8 बिट्स के साथ अधिकतम संभव 256 रंग हैं।


4 बिट

फ़ाइल का नाम: 4_bit.png

का उपयोग करते हुए:

identify -verbose  4_bit.png | grep colors
    png:PLTE.number_colors: 16

हम देखते हैं कि 16 रंगों का उपयोग किया जाता है जो 4 बिट्स के साथ अधिकतम रंग संयोजन संभव है।


2_bit.png

फ़ाइल का नाम: 2_bit.png

का उपयोग करते हुए:

$ identify -verbose  2_bit.png | grep colors
    png:PLTE.number_colors: 4

हम देखते हैं कि 4 रंगों का उपयोग किया जाता है जो कि 2 बिट्स के साथ अधिकतम रंग संयोजन संभव है।


2
अधिक स्क्रिप्ट के अनुकूल प्रारूप के लिए आप यह भी कर सकते हैं identify -format %z- अधिक के लिए ImageMagick -format विकल्प देखें ।
शराबी

29

32-बिट PNG (8 बिट प्रति चैनल - w / अल्फ़ा, जिसे "24-बिट PNG विथ अल्फा -8 बिट्स" या "PNG24 अल्फ़ा के साथ") कहा जाता है:

$ file zyne_zyne.png: 
PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced

24-बिट PNG (8 बिट प्रति चैनल - कोई अल्फा चैनल नहीं)

$ file 24.png
PNG image data, 1060 x 821, 8-bit/color RGB, non-interlaced

8-बिट PNG (256 रंग):

$ file 8bit.png
PNG image data, 1060 x 821, 8-bit colormap, non-interlaced

और बैज मेरा है :-)
Rinzwind

1
पैलेट PNGs अभी भी 8 बिट प्रति RGBA घटक है, वे सिर्फ 256 पैलेट प्रविष्टियों तक सीमित हैं। (प्रत्येक पिक्सेल पैलेट में एक 8-बिट या छोटे सूचकांक है, बजाय पिक्सेल डेटा को शाब्दिक रूप से संग्रहीत करने के)। यह पूरी तरह से स्पष्ट नहीं है कि यह कौन सा है। पीएनजी 24 भी प्रति घटक 8 बिट्स है ( घटक प्रति 24 बिट्स नहीं)। तो यह एक बेहतर उत्तर होगा यदि आपने दोनों प्रकार के पीएनजी से आउटपुट दिखाया।
पीटर कॉर्ड्स

मैंने 8 घंटे पहले "बिल्ला" से आपको गलत समझा था, लेकिन अब मैं इसका कारण बनता हूं कि मैं एक कांस्य और रजत के साथ
उठता हूं

1 से 10 बैज हमेशा विजेता होता है जो केवल 1 से 100 तक ही जीत
पाता है

1
@evilSnobu> fileमेरी प्राथमिक फ़ाइल पहचान उपकरण है और मुझे हमेशा आश्चर्य होता है कि यह विदेशी फ़ाइल स्वरूपों के बारे में कितना बता सकता है। दी, इसका कार्यान्वयन 80 के दशक के बाद से काफी बढ़ गया :)
स्पेक्ट्रास

8

यदि आपके पास एक्सफ़ॉल्टूल स्थापित है, तो आप कर सकते हैं:

bash-4.3 # एक्सफ़िल्टूल महाद्वीपों_बलंक_एल.पंग 
ExifTool संस्करण संख्या: 10.20
फ़ाइल नाम: महाद्वीप_ब्लांक_एल.पंग
निर्देशिका : ।
फ़ाइल का आकार: 170 kB
फ़ाइल संशोधन दिनांक / समय: २०१६: ०:: ०५ ० Time: ५ ९: २: + ०५: ३०
फ़ाइल अभिगमन तिथि / समय: 2017: 08: 07 00: 35: 15 + 05: 30
फ़ाइल इनकोड परिवर्तन दिनांक / समय: 2016: 07: 05 07: 59: 28 + 05: 30
फ़ाइल अनुमतियाँ: rw-r - r--
फाइल का प्रकार: पीएनजी
फ़ाइल प्रकार एक्सटेंशन: पीएनजी
MIME प्रकार: छवि / पीएनजी
चित्र चौड़ाई: 1100
छवि ऊंचाई: 850
बिट गहराई: 8
रंग प्रकार: अल्फा के साथ आरजीबी
संपीड़न: अपस्फीति / सूजन
फ़िल्टर: अनुकूली
अंतर्द्वंद्व: अविच्छिन्न
पृष्ठभूमि का रंग: 255 255 255
पिक्सेल प्रति यूनिट X: 3937
पिक्सेल प्रति यूनिट Y: 3937
पिक्सेल इकाइयाँ: मीटर
संशोधित तिथि: 2016: 07: 05 02:29:28
छवि का आकार: 1100x850
मेगापिक्सल: 0.935

5

हैकर का तरीका: आईएचडीआर पीएनजी चंक के अंदर वास्तविक बाइट्स में झांकना ।

 $ od -j 24 -N 2 -t u1 -An drivemount-applet_open.png
   8   2

पहला नंबर आपको बिटपथ बताता है। दूसरा, रंग प्रकार (2 आरजीबी छवियों के लिए है, अर्थात, तीन चैनलों के साथ चित्र, या प्रति पिक्सेल तीन नमूना मूल्य)।

इसलिए, इस मामले में हमारे पास RGB8 PNG (24 बिट प्रति पिक्सेल) है।


क्या पीएनजी 24 (प्रति चैनल 8-बिट) नहीं है? PNG8 8-बिट कॉलर्मैप = 256 रंग है।
badSnobu

1
हाँ, RGB8 PNG24 से मेल खाती है।
लीवबॉयल

सही। मेरी गलती। मैंने पढ़ा कि PNG8 के रूप में RGB8 नहीं। आपका उत्तर पूरी तरह से सही है।
badSnobu

3

"फ़ाइल" के उपरोक्त उपयोग के विकल्प के रूप में, जो PNG फ़ाइल के शीर्षलेख में फ़ाइल जादू पर निर्भर करता है, यदि PNG फ़ाइलों के साथ काम कर रहा है, तो " pngtools " पैकेज स्थापित होना उपयोगी है ।

pnginfo का उपयोग तब BitGepth (बिट्स / सैंपल) (जो किसी अन्य संपत्ति, पिक्सेल गहराई के साथ भ्रमित नहीं होना चाहिए) सहित PNG फ़ाइल के गुणों का पूरा विवरण देने के लिए किया जा सकता है।

 file  Debian_Expo.png

 Debian_Expo.png: PNG image data, 1280 x 1024, 8-bit/color RGB, non-interlaced

 ---

 pnginfo Debian_Expo.png

 Image Width: 1280 Image Length: 1024
 Bitdepth (Bits/Sample): 8
 Channels (Samples/Pixel): 3
 Pixel depth (Pixel Depth): 24
 Colour Type (Photometric Interpretation): RGB 
 ...

JPEG फ़ाइलों के लिए समतुल्य है jpeginfo, अपने स्वयं के पैकेज jpeginfo में।

Pnginfo के आउटपुट का प्रारूप BitDepth के मान को निकालना आसान बनाता है (क्योंकि यह एक अलग लाइन पर है) यदि इसका उपयोग शेल स्क्रिप्ट में किया जा रहा है।

क्या फाइल वास्तव में PNG फाइल नहीं होनी चाहिए, क्योंकि उदाहरण के लिए यह एक गलत JPEG है, तो pnginfo रिपोर्ट करेगा "यह फाइल एक मान्य PNG फ़ाइल नहीं है"।

जैसा कि हमेशा नौकरी के लिए उपयुक्त उपकरण निर्धारित किया जाता है, अन्य बातों के अलावा, आप कितनी बार उपकरण का उपयोग करने जा रहे हैं और आप आउटपुट को कैसे संसाधित करना चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.