Png meta verilerini okumak için hangi yazılımı kullanabilirim? [kapalı]


53

QImage.setText (...) ve QImage.text (...) kullanarak png meta verileri ekleyen ve okuyan basit bir küçük Qt tabanlı uygulama oluşturabileceğimi biliyorum. Bu meta veriler daha sonra pngmeta adlı bir linux komutu ile okunabilir.

Png meta verilerini okumak için başka hangi resim yazılımlarını kullanabilirim?

Lütfen ortak platformlar için görüntü programları aradığımı unutmayın, bu nedenle uygulamanızın Windows veya Linux için olup olmadığını belirtin.

Soruyu daha açık hale getirmek için, kendisine eklenmiş bazı test meta verilerinin bulunduğu bir img ekledim.

Meta veri içeren img

Teşekkürler Johan


Bağlantılar:

Yanıtlar:


78

Kullanarak ImageMagick:

identify -verbose image.png

ImageMagickplatformlar arası olmalıdır. Ekteki resminizle Linux'ta denedim:

[...]
Özellikleri:
  Yazar: Hans Müller
  Tarih: 2010-12-08 09:45
  tarih: oluştur: 2010-12-08T13: 15: 43 + 01: 00
  tarih: değiştir: 2010-12-08T13: 15: 43 + 01: 00
  Açıklama: Uzun zaman önce çok uzak bir galaksideki ...
  İmza: 3b4a54202316a7ae4b4fe0e431d47958181f4bb893493355820d4ba74f9f5ee3
[...]

2
Yardım etmekten memnun oldum. ImageMagickSuite çok daha fazlasını yapabilir, onunla IMO biraz zaman harcamak için değer.
cYrus

Bilginize: Bu, hareketli PNG dosyalarını Kasım 2017'den itibaren algılamayacak, pngcheck veya benzeri bir şey kullanarak acTL vb. Aramanız gerekiyor ...
Mike Q

Not Ancak bu alanlardan bazı dosya verilerinde yoksa gerçek ekstra meta mevcut olduğu: date:createve date:modifybasitçe dosya sistemi meta dönün ve signaturegörüntü verilerinin bir karma hesaplar.
Ciro Santilli en son 30:18

15

Diğer bir seçenek ise Windows'taki TweakPNG'dir .

Hans MüllerGörüntünüzdeki adı görüntülemekte sorun yaşadığını görebiliyorum , bu nedenle belki de Unicode meta verileriyle çalışmaz.

TweakPNG


1
İyi bir fikir gibi göründüğü için ü içeren bir dize ekledim.
Johan,

2
Bilginize, TweakPNG Şarap içinde güzel çalışıyor .
Denilson Sá Maia

güzel uygulama, güzel & basit
yarg

10

Yalnızca PNG çözümü arıyorsanız, şunu deneyin 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

Çıktısı, pnginfokullanımınız için yeterince ayrıntılı olmayabilir:

$ 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....

Nerede bulabilirim pngchunks?
Iulian Onofrei

@IulianOnofrei güncellendi
malat

pngcheckztxtsegmentleri
açmak

7

ExiftoolYukarıda bahsettiğimi göremiyorum .
Sadece birçok resim formatı yok png...
Sadece bir "platform bağımsız perl modülü" değil, aynı zamanda bir çalıştırılabilir (birkaç platform / işletim sistemi için mevcut).

Daha fazla bilgi: http://www.sno.phy.queensu.ca/~phil/exiftool/


4

Başka bir soruda belirtildiği gibi , pngcheck'i kullanabilirsiniz :

pngcheck -c -v -t foobar.png

Bunlar PNG parçalarını göstermek için ilgili seçeneklerdir:

-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. Her iki yorumu da eklemek için imagemagick'i kullanma:

    mogrify -comment "your comment" <IMAGE_NAME>
    
  2. Sonra tekrar okudum:

    identify -verbose <IMAGE_NAME>
    

Veya yalnızca yorumu görmek istiyorsanız:

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

Meta verileri düzgün bir şekilde gömmek iyi bir uygulamadır.


Bunu başarmak için convert'i kullanıyordum, böylece yeni bir sürüm oluşturabilirdim, ama mogrifyhenüz kazanamadım , teşekkürler! convert filename.png -set comment "That rabbits dynamite!" filename.png;
roberthuttinger 11:17

sadece bilinen özellikler için işleri tanımlamak. Herhangi bir özel etiket görünmez.
TJR

1

Birisi Magick.NET kullanıyorsa , bu özellikleri C # ile şöyle elde edebilirsiniz:

foreach(string key in image.AttributeNames)
{
    string value = image.GetAttribute(key);
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.