J'essaie d'afficher un bytearray en tant qu'image redimensionnée. L'image s'affiche correctement, mais le dimensionnement est désactivé. Laisse-moi expliquer.Redimensionnement d'une image à partir d'un ByteArray décodé
première fois que je les données d'image codées, alors je dois décoder les données d'image
// Instantiate decoder
var decoder:Base64Decoder = new Base64Decoder();
// Decode image data
decoded.decode(picture.data);
// Export data as a byteArray
var byteArray:ByteArray = decoder.toByteArray();
// Display image
var img:Image = new Image();
img.load(byteArray);
Cela fonctionne. L'image est affichée correctement. Cependant, si je code en dur la hauteur de l'image (img), l'image redimensionnée est affichée correctement, mais dans une boîte avec les dimensions de l'image d'origine. Par exemple, si l'image d'origine a une hauteur de 300 pixels et une largeur de 200 pixels et que la propriété img.height est définie sur 75; l'image redimensionnée avec une hauteur de 75 est affichée correctement. Mais l'image redimensionnée est affichée dans le coin supérieur gauche du conteneur img qui est toujours défini sur une hauteur de 300 pixels et une largeur de 200 pixels. Pourquoi ça fait ça? Et quelle est la solution?
La meilleure façon d'illustrer le problème est de placer l'image dans une VBox et d'afficher les limites de la VBox. À partir du bloc de code ci-dessus, si je change la hauteur de l'image et que je règle l'image pour maintenir le rapport d'aspect (qui par défaut est réglé sur vrai mais je l'ajoute ici pour être complet). le problème devient clair. Je travaille sur ce problème depuis des jours et je n'arrive pas à trouver une solution. Des idées? Qu'est-ce que je rate?