Archive pour May 2008

JPGEncoder en 300 dpi

Wednesday 21 May 2008

J’ai eu affaire ces derniers jours à la class JPGEncoder (contenue dans le corelib fourni par adobe) en AS3 qui permet d’encoder du bitmap depuis vers au format JPG. Pratique me direz vous ! La ou il fallais 20 secondes pour générer 1000px en AS2 via une passerelle AS2 en lui passant les données pixels toutes les 2 secondes pour éviter un crash, on peux maintenant exporter 3Mpixels en moins de 3 secondes.

Tutorial d’utilisation de la class JPGEncoder.

Mais voilà Adobe a prévu leur class seulement pour exporter seulement du 72dpi. Pas très pratique lorsqu’on exporter un JPG de stickers pour l’imprimer par la suite.

Après quelques longues recherches sur le format JPG et ses spécificités j’ai pu modifier le script JPGEncoder afin qu’il exporte en 300dpi. Il est possible d’encoder directement en 300dpi sans passer par Photoshop comme certains me le conseillais !

Pour cela, rendez vous ligne 400. Lors de l’écriture d’un des header du format JPG (APP0, marqueurs qui défini des spécificité)
Remplacez le 10ème byte écrit ligne :
writeByte(0); // xyunits -> writeByte(1); // xyunits
puis les lignes suivantes :
writeWord(1); // xdensity -> writeWord(0×12c); // xdensity défini la densité de pixel en x en hexadecimal (0×12c = 300)
writeWord(1); // ydensity -> writeWord(0×12c); // ydensity défini la densité de pixel en y en hexadecimal (0×12c = 300)

Votre export sera alors bien du 300dpi !

Mots Clés: