mercredi 26 mai 2010

Redimensionner une image

C'est un problème soulevé quelques fois dans le forum, et que je me suis moi-même posé... Le truc classique, c'est de prendre une photo puis de la stocker ou l'envoyer à un serveur web. Oui, mais le problème, c'est que la photo est grosse, très grosse. Enfin, pas non plus plus du format RAW, mais assez grosse pour mettre 3 heures à partir avec une petite connection 3G. Surtout que bien souvent, la première chose que va faire le serveur, c'est justement de redimensionner l'image...
Bref, tout ça pour dire qu'on veut redimensionner l'image directement sur le téléphone. Oui, mais la documentation (très légère) ne semble pas indiquer d'option pour ça. En tâtonnant, on découvre que l'image a des propriétés height et width, mais non modifiables... Et là, on se met râler...

Sauf que Titanium permet de transformer toutes les vues en images. Et oui, la méthode toImage()...

Donc, en gros, voilà le code qui fonctionne (sous iPhone en tout cas, pas testé sous Android)

var imageView = Titanium.UI.createImageView({
   image:image,
   width:480,
   height:640
});

image = imageView.toImage();

Voilà la première astuce de ce blog...

Aucun commentaire:

Enregistrer un commentaire