2014-05-16 20 views
7

Background:Cosa sta gonfiando il mio png?

Sto lavorando a fare un mucchio di PNG più piccolo possibile. Sto giocando con strumenti come PngOut, PngCrush e OptiPng.

Problema:

mi sono imbattuto in un file che è 1434 KB di dimensione, ma è a soli 230 x 230 pixel. Quando apro il file in Paint.Net e lo salvo come nuovo file, il nuovo file è solo 77 KB. Quello è un enorme 1.325 MB di spazzatura in più!

Obiettivi:

vorrei capire che cosa esattamente potrebbe essere gonfiore del file, e anche come posso automaticamente sbarazzarsi di tale gonfiare quando si incontra, e sto avendo problemi realizzare uno di questi obiettivi . OptiPng non sta rimuovendo i metadati.

Progress:

ho trovato exiftool che sembra a tutto tondo impressionante, ma non sta mostrando alcun tag folli.

RIOT può produrre una nuova versione dell'immagine senza i dati aggiuntivi, ma non mi dà alcun indizio solido su cosa sia il bloat - non è sicuramente info XMP o commenti (gli unici metadati che posso scegliere includere). Ma RIOT rimuove automaticamente e con la forza le informazioni IPTC e i profili EXIF ​​- potrebbe essere uno di quelli?

Commenti desiderata

I vostri pensieri su come programatically o automaticamente senza perdita di schiacciare e rimuovere i metadati da PNG (e se è per questo, altri tipi di immagine) sono apprezzati. Tuttavia, mi piacerebbe non solo buttare via le informazioni in un file senza aver prima capito di cosa si tratta.

Aggiornamento

ho trovato Steel Bytes Jpeg & PNG Stripper, e lo fa spogliare i metadati dal file (e ha una modalità a riga di comando), ottenendo un file di 84 KB che posso poi PNG ottimizzare, ma questo ancora doesn aiutami a capire cosa sto rimuovendo, e mi sento come se avessi bisogno di capire prima di procedere. Non ho bisogno di ottenere il permesso di ottimizzare queste immagini utilizzate in un sito Web di produzione pubblico, ma ho bisogno di essere sicuro di quello che sto facendo prima di fare un tale cambiamento.

Update 2

non ho notato che optipng ha un'opzione, -strip all, che mette a nudo i metadati. Questo è meglio di Steel Bytes Stripper da molto tempo, dato che ha molte più opzioni per la gestione del backup del file originale - mantenere un backup, o produrre il file ottimizzato in una nuova posizione. Inoltre, è possibile ottimizzare i dati dell'immagine del PNG allo stesso tempo, richiedendo un solo strumento invece di due.

Addendum

Ecco cosa exiftool -a -G [file.png] spettacoli:

[ExifTool]  ExifTool Version Number   : 9.60 
[File]   File Name      : file.png 
[File]   Directory      : . 
[File]   File Size      : 1446 kB 
[File]   File Modification Date/Time  : 2014:03:31 16:37:20-07:00 
[File]   File Access Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Creation Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Permissions    : rw-rw-rw- 
[File]   File Type      : PNG 
[File]   MIME Type      : image/png 
[PNG]   Image Width      : 230 
[PNG]   Image Height     : 230 
[PNG]   Bit Depth      : 8 
[PNG]   Color Type      : RGB with Alpha 
[PNG]   Compression      : Deflate/Inflate 
[PNG]   Filter       : Adaptive 
[PNG]   Interlace      : Noninterlaced 
[PNG]   Significant Bits    : 8 8 8 8 
[PNG]   Pixels Per Unit X    : 2834 
[PNG]   Pixels Per Unit Y    : 2834 
[PNG]   Pixel Units      : Meters 
[PNG]   Creation Time     : 3/31/14 
[PNG]   Software      : Adobe Fireworks CS6 
[XMP]   XMP Toolkit      : Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 
[XMP]   Creator Tool     : Adobe Fireworks CS6 (Macintosh) 
[XMP]   Create Date      : 2012:10:24 19:01:30Z 
[XMP]   Modify Date      : 2014:03:31 23:34:45Z 
[XMP]   Format       : image/png 
[Composite]  Image Size      : 230x230 
+0

Puoi espandere i tuoi "tag non pazzi"? 230 x 230 x 4 = 206,6 Kb e anche con la peggiore * compressione immaginabile * non è possibile espandere così tanto. 'pngcheck' dovrebbe essere un buon strumento. Candidato più probabile: un singolo profilo colore grande ('gAma',' cHRM' o 'iCCP'). – usr2564301

+0

@Jongware Vedi l'addendum - questo è l'output completo che exiftool fornisce per i tag dei metadata nel file. Guarderò a pngcheck. Grazie! – ErikE

+0

"Exif" è solo una - piccola - parte dei metadati PNG; sorta di "sommario", per software che potrebbe averne bisogno in un formato comprensibile. 'pngcheck' esporrà l'intestino grezzo dei tuoi PNG. Solo * molto * pochi pezzi di dati sono effettivamente * richiesti *. – usr2564301

risposta

3

I dati pixel prime della vostra immagine 230x230 pixel non dovrebbe essere così grande, anche se male o per niente compresso. Pertanto, tutti questi dati devono risiedere in un blocco dati PNG non standard.

Utilizzare pngcheck per scoprire quali pezzi sono nel file e quanto sono grandi. Quindi utilizzare W3C PNG Specifications per individuare l'utilizzo di particolari blocchi e, se necessario, cercare altrove i blocchi "dati privati".

A meno che non si tratta di un seriamente pezzo non standard, tutte le cui name indicare non sono "necessaria", sono possibili candidati per la rimozione.

+0

Vedere la sezione Risultati aggiunta alla domanda. – ErikE

+0

... oppure no. Devo in qualche modo non essere riuscito a colpire submit. Proverò ad aggiornare presto la domanda. – ErikE

Problemi correlati