पीएनजी मेटाडेटा पढ़ने के लिए मैं किस सॉफ्टवेयर का उपयोग कर सकता हूं? [बन्द है]


54

मुझे पता है कि मैं QImage.setText (...) और QImage.text (...) का उपयोग करके png मेटाडेटा को जोड़ने और पढ़ने वाला एक साधारण सा क्यूटी आधारित एप्लिकेशन बना सकता हूं। उसके बाद मेटाडेटा को pngmeta नामक एक linux कमांड के साथ पढ़ा जा सकता है।

लेकिन पीएनजी मेटाडेटा को पढ़ने के लिए मैं किस अन्य छवि सॉफ़्टवेयर का उपयोग कर सकता हूं?

कृपया ध्यान दें कि मैं सामान्य प्लेटफार्मों के लिए छवि कार्यक्रम की मांग कर रहा हूं, इसलिए कृपया निर्दिष्ट करें कि क्या आपका आवेदन विंडोज या लिनक्स के लिए है।

प्रश्न को स्पष्ट करने के लिए मैंने कुछ परीक्षण मेटाडाटा के साथ एक img संलग्न किया।

मेटा डेटा के साथ img

धन्यवाद जोहान


लिंक:

जवाबों:


78

का उपयोग कर ImageMagick:

identify -verbose image.png

ImageMagickक्रॉस-प्लेटफॉर्म होना चाहिए। मैंने इसे आपकी संलग्न छवि के साथ लिनक्स पर आज़माया:

[...]
गुण:
  लेखक: हंस मुलर
  दिनांक: 2010-12-08 09:45
  दिनांक: बनाएँ: २०१०-१२-०-12T१३: १५: ४३ + ०१: ००
  दिनांक: संशोधित: २०१०-१२-०13१३: १५: ४३ + ०१: ००
  उतर: बहुत पहले एक आकाशगंगा में बहुत दूर ...।
  हस्ताक्षर: 3b4a54202316a7ae4b4fe0e431d47958181f4bb893493935858d4ba74f9f5ee3
[...]

2
मदद करने में खुशी। ImageMagickसूट बहुत अधिक कर सकता है, इसके लिए कुछ समय आईएमओ के साथ बिताने लायक है।
cYrus

FYI करें: यह नवंबर, 2017 के रूप में एनिमेटेड PNG फ़ाइलों का पता नहीं लगाएगा, आपको pngcheck या कुछ और का उपयोग करके acTL आदि देखने की आवश्यकता है ...
माइक क्यू

हालाँकि, ध्यान दें कि उन क्षेत्रों में से कुछ फ़ाइल डेटा में मौजूद वास्तविक अतिरिक्त मेटाडेटा नहीं हैं: date:createऔर date:modifyबस फ़ाइल सिस्टम मेटाडेटा को वापस करते हैं, और signatureछवि डेटा के हैश की गणना करते हैं।
सिरो सेंटिल्ली 新疆 改造 iro i 事件 '30

15

एक और विकल्प विंडोज पर TweakPNG है

मैं देख सकता हूं कि Hans Müllerआपकी छवि में नाम प्रदर्शित करने में समस्याएं हैं , इसलिए शायद यह यूनिकोड मेटाडेटा के साथ काम नहीं करता है।

TweakPNG


1
मैंने एक ü के साथ एक तार जोड़ा क्योंकि यह एक अच्छा विचार था।
जोहान

2
FYI करें, TweakPNG वाइन के अंदर अच्छा काम करता है ।
डेनिलसन सिया मिया

महान अनुप्रयोग, अच्छा और सरल
yarg

10

यदि आप पीएनजी-केवल समाधान के लिए देख रहे हैं, तो प्रयास करें pngchunks:

$ sudo apt-get install pngtools
$ pngchunks UiagX.png
Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IHDR Width: 800
  IHDR Height: 600
  IHDR Bitdepth: 8
  IHDR Colortype: 2
  IHDR Compression: 0
  IHDR Filter: 0
  IHDR Interlace: 0
  IHDR Compression algorithm is Deflate
  IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)
  IHDR Interlacing is disabled
  Chunk CRC: 353637671
Chunk: Data Length 9 (max 2147483647), Type 1935231088 [pHYs]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 10132504
Chunk: Data Length 19 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: -1325924661
Chunk: Data Length 21 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 134517081
Chunk: Data Length 58 (max 2147483647), Type 1951945850 [zTXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 1701487776
Chunk: Data Length 572939 (max 2147483647), Type 1413563465 [IDAT]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IDAT contains image data
  Chunk CRC: 1174233759
Chunk: Data Length 0 (max 2147483647), Type 1145980233 [IEND]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IEND contains no data
  Chunk CRC: -1371381630

आउटपुट pnginfoआपके उपयोग के लिए पर्याप्त नहीं हो सकता है:

$ pnginfo UiagX.png
UiagX.png...
  Image Width: 800 Image Length: 600
  Bitdepth (Bits/Sample): 8
  Channels (Samples/Pixel): 3
  Pixel depth (Pixel Depth): 24
  Colour Type (Photometric Interpretation): RGB 
  Image filter: Single row per byte filter 
  Interlacing: No interlacing 
  Compression Scheme: Deflate method 8, 32k window
  Resolution: 2835, 2835 (pixels per meter)
  FillOrder: msb-to-lsb
  Byte Order: Network (Big Endian)
  Number of text strings: 3 of 9
    Author (tEXt uncompressed): Hans Müller
    Date (tEXt uncompressed): 2010-12-08 09:45
    Desc (tEXt uncompressed): A long time ago in a galaxy far far away....

मैं कहां मिलूं pngchunks?
इयूलियन ओनोफ्रेई

@IulianOnofrei अद्यतन
malat

pngcheckप्रकट नहीं होता है ztxtखंडों को
कूटने में

7

मैं Exiftoolऊपर उल्लेख नहीं देख सकता ।
यह कई छवि प्रारूप करता है, न केवल png...
यह एक "प्लेटफ़ॉर्म स्वतंत्र पर्ल मॉड्यूल" है, लेकिन एक निष्पादन योग्य (कई प्लेटफार्मों (ओएस) के लिए भी उपलब्ध है)।

अधिक जानकारी: http://www.sno.phy.queensu.ca/~phil/exiftool/


4

जैसा कि एक अन्य प्रश्न में कहा गया है , आप pngcheck का उपयोग कर सकते हैं :

pngcheck -c -v -t foobar.png

ये PNG हिस्सा दिखाने के लिए प्रासंगिक विकल्प हैं:

-7  print contents of tEXt chunks, escape chars >=128 (for 7-bit terminals)
-c  colorize output (for ANSI terminals)
-p  print contents of PLTE, tRNS, hIST, sPLT and PPLT (can be used with -q)
-t  print contents of tEXt chunks (can be used with -q)
-v  test verbosely (print most chunk data)

2
  1. टिप्पणी जोड़ने के लिए दोनों का उपयोग करना

    mogrify -comment "your comment" <IMAGE_NAME>
    
  2. फिर इसे वापस पढ़ना:

    identify -verbose <IMAGE_NAME>
    

या, यदि आप केवल टिप्पणी देखना चाहते हैं:

identify -verbose <IMAGE_NAME> | grep "comment:"

मेटाडेटा को ठीक से एम्बेड करना एक अच्छा अभ्यास है।


मैं इसे पूरा करने के लिए कन्वर्ट का उपयोग कर रहा था ताकि मैं एक नया संस्करण बना सकूं, लेकिन मुझे mogrifyअभी तक नहीं मिला है , धन्यवाद! convert filename.png -set comment "That rabbits dynamite!" filename.png;
roberthuttinger

पहचान केवल ज्ञात गुणों के लिए काम करता है। कोई भी कस्टम टैग दिखाई नहीं देगा।
टीजेआर

1

यदि कोई व्यक्ति Magick.NET का उपयोग कर रहा है , तो आप उन विशेषताओं को C # में प्राप्त कर सकते हैं:

foreach(string key in image.AttributeNames)
{
    string value = image.GetAttribute(key);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.