ฉันสามารถใช้ซอฟต์แวร์ใดในการอ่านข้อมูลเมตาของ png [ปิด]


53

ฉันรู้ว่าฉันสามารถสร้างแอปพลิเคชั่น Qt แบบง่าย ๆ ที่เพิ่มและอ่านข้อมูลเมตา png โดยใช้ QImage.setText (... ) และ QImage.text (... ) ข้อมูลเมตานั้นสามารถอ่านได้ด้วยคำสั่ง linux ชื่อ pngmeta

แต่ซอฟต์แวร์ภาพอื่น ๆ ที่ฉันสามารถใช้เพื่ออ่านข้อมูลเมตา png ได้?

โปรดทราบว่าฉันกำลังมองหาโปรแกรมภาพสำหรับแพลตฟอร์มทั่วไปดังนั้นโปรดระบุว่าแอปพลิเคชันของคุณสำหรับ Windows หรือ Linux

เพื่อให้คำถามชัดเจนยิ่งขึ้นฉันได้แนบ img โดยมีเมตาดาต้าทดสอบบางส่วนติดอยู่

img ด้วยข้อมูลเมตา

ขอบคุณโจฮาน


ลิงค์:

คำตอบ:


78

การใช้ImageMagick:

identify -verbose image.png

ImageMagickควรข้ามแพลตฟอร์ม ฉันลองบน Linux ด้วยภาพที่แนบมาของคุณ:

[ ... ]
คุณสมบัติ:
  ผู้แต่ง: Hans Müller
  วันที่: 2010-12-08 09:45
  วันที่: สร้าง: 2010-12-08T13: 15: 43 + 01: 00
  วันที่: แก้ไข: 2010-12-08T13: 15: 43 + 01: 00
  Desc: นานมาแล้วในกาแลคซีไกลแสนไกล ....
  ลายเซ็น: 3b4a54202316a7ae4b4fe0e431d47958181f4bb893493355820d4ba74f9f5ee3
[ ... ]

2
ดีใจที่ได้ช่วยเหลือ ImageMagickชุดสามารถทำมากขึ้นมันคุ้มค่าที่จะใช้เวลากับมัน IMO
cYrus

FYI: สิ่งนี้จะไม่ตรวจจับไฟล์ PNG ที่มีการเคลื่อนไหวในเดือน พ.ย. 2017 คุณต้องค้นหา acTL และอื่น ๆ โดยใช้ pngcheck หรืออะไรบางอย่าง ...
Mike Q

อย่างไรก็ตามโปรดทราบว่าบางฟิลด์เหล่านั้นไม่ใช่ข้อมูลเมตาจริงที่เกิดขึ้นจริงในข้อมูลไฟล์: date:createและdate:modifyเพียงแค่ส่งคืนข้อมูลเมตาของระบบไฟล์และsignatureคำนวณแฮชของข้อมูลภาพ
Ciro Santilli 新疆改造中心法轮功六四事件

15

อีกตัวเลือกหนึ่งคือTweakPNGบน Windows

ฉันเห็นว่ามีปัญหาในการแสดงHans Müllerชื่อในภาพของคุณดังนั้นอาจใช้ไม่ได้กับข้อมูลเมตาของ Unicode

TweakPNG


1
ฉันเพิ่มสตริงด้วยüเนื่องจากมันให้ความรู้สึกที่ดี
Johan

2
FYI, TweakPNG ทำงานภายในที่ดีไวน์
Denilson Sá Maia

แอปที่ยอดเยี่ยมดี & เรียบง่าย
yarg

10

หากคุณกำลังมองหาวิธีการแก้ปัญหา PNG เท่านั้นลอง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ที่ไหน
Iulian Onofrei

@IulianOnofrei อัพเดทแล้ว
malat

pngcheckไม่สามารถztxtแยกส่วนได้
RobM

7

ฉันไม่เห็นExiftoolดังกล่าวข้างต้น
มันทำรูปแบบภาพมากมายไม่ใช่แค่png...
มันเป็น "แพลตฟอร์มอิสระ perl module" แต่ยังสามารถใช้งานได้ (สามารถใช้ได้กับหลายแพลตฟอร์ม / OS)

ข้อมูลเพิ่มเติม: 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. การใช้ imagemagick สำหรับทั้งการเพิ่มความคิดเห็น:

    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

ระบุทำงานเฉพาะสำหรับคุณสมบัติที่รู้จัก แท็กที่กำหนดเองจะไม่ปรากฏขึ้น
TJR

1

ในกรณีที่มีคนใช้Magick.NETคุณสามารถรับคุณลักษณะเหล่านั้นใน C # ดังนี้:

foreach(string key in image.AttributeNames)
{
    string value = image.GetAttribute(key);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.