JPGEncoder en 300 dpi
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:AS3 developpement
22 May 2008 at 12:05 am
Oh de la vie !
27 May 2008 at 8:18 pm
Merci !
30 May 2008 at 8:10 am
Ça c’est du Dev !
31 May 2008 at 4:09 pm
class, merci pour l’info !
17 October 2008 at 12:23 pm
Salut, merci pour cette astuce,
en revanche l’image générée via bitmapData est limitée à 2880×2880 pixels,
du coup on est vite limité pour de l’impression en haute définition, non ?
8 November 2008 at 4:53 am
Wow! Thank you so much for this. Encoding at 300 dpi is just what I needed for my project. www.drawzit.com
20 November 2008 at 8:06 pm
Belle initiative
17 December 2008 at 5:18 pm
Hi Tomy!
I already had try this trick, and when imported to photoshop the image is imported as 300dpi picture, but the size in bytes are the same for 72/150/300dpi and this impossible! I believe we are doing the same thing like rename a file extension.. lol
but the thing is that we need to get one solution…. maybe on server side with some compression tool…
I wanna talk with you about this, can you email me?
merci,
rui
14 February 2009 at 4:03 pm
To Rui Cruz:
The dpi number only say to the printer how many pixels should take in every inch. If you take any jpg with photoshop and change the print resolution, photosho change the size in pixels becouse by default the “resample image” option is checked. If you want to create a jpg with especific print size (like 2×2 inches) at 300dpi you need to create a jpg of 600×600 pixels (2×300=600) and mark in the header 300dpi printer resolution. If you want a 20×20 inches image at 300 dpi, you need a 6000×6000 pixel image, etc… Thats all.