2012-12-03 5 views
0

Voici la situation: sur ma scène, j'ai un objet Bitmap qui fait référence à un objet BitmapData. Mon objet Bitmap est en plein écran, donc 1366x768. D'autre part, j'ai une fonction (à partir d'une bibliothèque donc je ne peux pas l'éditer) qui retourne un bitmapData avec une nouvelle image. Cette image est 640x480, et la fonction est appelée chaque seconde.AS3 - Essayer de redimensionner un bitmapData mais la matrice ne change rien

Et voici le problème: je n'arrive pas à trouver un moyen de mettre à l'échelle l'image retournée en plein écran. J'ai essayé avec une matrice et la méthode .draw mais cela ne fait rien.

Voici quelques code:

var mat:Matrix = new Matrix(); 
mat.scale(0.52, 0.52); // I tried with other values such as 2 but the picture stays the same 
// scr_bmp is the BitmapData attached to the displayed Bitmap 
// capt.bmp is the BitmapData returned by the function 
// I tried without the new Rectangle but that doesn't change anything 
scr_bmp.draw(capt.bmp, mat, null, null,new Rectangle(0, 0, 640, 480), true); 

Avec ce code, la nouvelle image est affichée correctement mais dans sa taille originale: 640x480 et le reste de l'écran est vide.

Merci d'avance pour votre aide!

Répondre

1

hmmm ...

mat.scale(scr_bmp.width/capt.bmp.width,scr_bmp.height/capt.bmp.height); 
var smallBitmap:Bitmap=new Bitmap(capt.bmp); 
scr_bmp.fillRect(scr_bmp.rect,0x00808080); 
scr_bmp.draw(smallBitmap,mat); 

Juste essayé avec des tailles différentes, mais cela a fonctionné pour moi. Mais j'utilise AS3, pas AS2.

+0

Oh mon dieu, un énorme merci! Votre code a signalé un bug dans mon code qui a empêché la matrice de fonctionner correctement ... – user1741088

Questions connexes