2010-03-19 3 views
0

사용자 로컬 하드 드라이브에서 640x360 크기의 캔버스로 이미지를 그려야하는 플렉스 어플리케이션을 개발 중입니다.스케일링 확대 이미지 문제

사용자가 선택할 수있는 큰 해상도의 이미지 &은 Canvas 크기에 맞게 조정됩니다.

그러나 사용자가 3000x2000과 같은 더 큰 해상도의 이미지를 선택하면 배율을 조정하는 데 많은 시간이 걸리므로 &은 크기 조정을 완료 할 때까지 응용 프로그램을 고정시킵니다.

이미지를 빠르게 확대하거나 스레딩을 수행 할 수있는 방법이 있습니까? 나는 다음과 같이 이미지의 크기를 조절하는 매트릭스를 사용하고

: 당신이 이미지 태그에 'scaleContent'속성을 설정 ... 사진 사진 이미지 태그에 맞게 조정됩니다 해달라고 왜

var mat:Matrix = new Matrix(); 
    var scalex:Number = canvasScreen.width/content.width; 
    var scaley:Number = canvasScreen.height/content.height; 
    mat.scale(scalex,scaley);   

    canvasScreen.graphics.clear();  
    canvasScreen.graphics.beginBitmapFill(content.bitmapData,mat); 

답변

0

.

+0

추가 및 삭제되므로 그리기 방법을 사용하여 이미지를 배경으로 표시합니다. nd. – krishna

0

나는 당신의 문제는 이미지의 사용이다 생각 나는 캔버스에 이미지를로드하고 크기를 조절하지만 몇 가지 코드를 작성합니다 큰 해결을위한 좋은이 작동하는 응용 프로그램을 개발하고하는 것은 어쩌면 그것은 당신을 도울 것입니다 :

public class ImageObject extend Canvas 
{ 
    public var image :Image; 

    .................. 
    .................. 

    override protected function childrenCreated() : void 
    { 
     super.childrenCreated(); 
     addChild(image); 
    } 

    public function scaleImage():void 
    { 
     // Caluculate your xVal and yVal here 

     var m:Matrix = new Matrix(); 
     m.scale(xVal, yVal); 
     m.concat(image.transform.matrix); 

     image.transform.matrix = m; 
    } 
} 

그리고 당신은 당신이 은 전 2 개 컨테이너를 만드는 시도해야 된 ImageObject하는 아이로 이미지를 추가 할 수없는 경우 : 객체가 다른 유형과 마찬가지로 나는 캔버스의 자식으로 이미지를 싶지 않는

public class ImageObject extend Canvas 
{ 

public var imageContainer :Canvas; 
public var otherContainer :Canvas; 

........................... 
........................... 

override protected function childrenCreated() : void 
{ 
     super.childrenCreated(); 
     addChild(imageContainer); // add here your image 
     addChild(otherContainer); // here other objects 
}