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:

9 réponses à “JPGEncoder en 300 dpi”

  1. Chloé dit :

    Oh de la vie !

  2. LutinCapuche dit :

    Merci !

  3. SylvainSyl dit :

    Ça c’est du Dev !

  4. malau dit :

    class, merci pour l’info !

  5. Fred3d dit :

    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 ?

  6. ryan dit :

    Wow! Thank you so much for this. Encoding at 300 dpi is just what I needed for my project. www.drawzit.com

  7. SylvainW dit :

    Belle initiative :)

  8. Rui Cruz dit :

    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

  9. UCh dit :

    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.

Laisser un commentaire


online Spielautomaten - Online Slots - Glücksspiele online - online casino bonus - Casino Spiele - Glücksspielautomaten - Geldspielautomaten - Online Casino Spiele - online casino - Casinospiele online - online Spielbanken - Online Slotmaschinen - videopoker - deutsche casino - Onlinecasino - online slot machines - internet casino - spielcasino online - online kasino - Online Roulette - Online Spiele um Geld spielen