[Python] [ANN] pdfimg un tool per convertire immagini PNG in documenti PDF
Manlio Perillo
manlio_perillo a libero.it
Lun 16 Giu 2008 20:15:16 CEST
Sono felice di annunciare la prima preview di pdfimg, un tool per
convertire immagini PNG (in futuro forse anche JPG) in documenti PDF
(versione 1.4).
Il tool è quasi completo, ed il repository Mercurial è disponibile qui:
http://hg.mperillo.ath.cx/pdfimg/
Per convertire una immagine PNG in PDF:
$bin/png2pdf -o img.pdf img.png
Il tool implementa un generatore PDF e parser PNG completi, che benchè
siano a basso livello, sono molto flessibili e riutilizzabili.
Praticamente *tutte* le feature di PNG sono "trasferite" nel documento
PDF, senza encoding/decoding intermedio e senza memorizzare nessun dato
in memoria (quindi è *molto* efficiente, specialmente per grosse
immagini alla risoluzione per la stampa).
Il generatore PDF ed il parser PNG sono stati disegnati con queste
funzionalità in mente (quindi l'API può apparire un pò strana).
I *soli* chunk PNG che non sono usati sono:
* gAMA (ma solo se il chunk cHRM non è definito) (TODO ?)
* tEXt, zTXt (TODO)
* iTXt
* sBIT
* sPLT
* hIST
Queste feature di PNG non sono supportate da PDF:
* imagini con canale alpha
(ma la trasparenza semplice con tRNS è supportata)
* immagini con 16 bits per componente
(ma le nuove versioni (>= 1.5) di PDF le supportano)
* immagini interlacciate
IMHO questo è probabilmente il tool più flessibile e completo per
convertire una immagine in PDF, ed è anche facilmente programmabile.
La documentazione è ancora carente (ci sto lavorando) ma ogni feedback
sarà molto apprezzato, specialmente riguardo la fedeltà nella resa dei
colori calibrati.
pdfimg ha una test suite completa che usa le immagini dalla PNG Suite
(che va scaricata a parte).
Purtroppo la suite non ha immagini di test per i chunk sRGB ed iCPP.
Ho fatto un test con una immagine con tipo di colore RGB e profilo ICC
embedded (purtroppo Linux non è la piattaforma migliore per controllare
la resa dei colori calibrati), ma non ho avuto modo di testare immagini
in scala di grigio e indicizzate con profilo di colore ICC embedded.
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python