2009-06-22 22 views
5

Mi chiedo come comprimere un'immagine PNG correttamente.Compressione PNG con PHP magickwand

La situazione è questa:

Ho un'immagine PNG compresso e colore-ridotto con Irfanview su Windows. Si tratta di circa 20 KB. Quando il software del mio portale ridimensiona (usando magickwand 1.0.7) con valori predefiniti, è circa 63K (!).

Il prossimo tentativo era di chiamare MagickSetImageDepth ($ this -> _ imageHandler, 8), risultando in un file di 34K, che è migliore, ma è comunque più grande del file originale (di dimensioni maggiori).

Nessuna delle funzioni documentate sembra adattarsi per comprimere ulteriormente l'immagine.

Qualsiasi suggerimento sarebbe molto apprezzato!

Greetz, Sosa

risposta

1

programmi di compressione PNG e routine utilizzano tecniche diverse. Ho scoperto che molte volte, un'immagine che è già stata compressa (o salvata in modo efficiente) non può essere compressa ulteriormente o ha anche una dimensione di file più alta di quella che si sta verificando.

Nel tuo caso, direi che le tue immagini non possono essere ulteriormente compresse, almeno utilizzando MagickWand. Potresti semplicemente voler omettere quel passaggio.

Forse l'ottimizzazione dei PNG prima del runtime sarebbe una soluzione. Ci sono molte opzioni disponibili in questo caso. Ho avuto fortuna con PNGGauntlet. È possibile eseguire un processo batch su PNGGauntlet e salterà i file che avrebbe reso più grandi, se presenti.