2013-03-14 2 views
0
var bd:BitmapData=new BitmapData(file.width,file.height); 
bd.setPixels(new Rectangle(0,0,file.width,file.height),file.raw); 

var scale_x_percents:Number = (w/bd.width); 
var scale_y_percents:Number = (h/bd.height); 
if(!stretch) { 
    if(bd.width*scale_y_percents>=w) { 
     scale_x_percents=scale_y_percents; 
    } 
    else if(bd.height*scale_x_percents>=h) { 
     scale_y_percents=scale_x_percents; 
    } 
} 
var matrix:Matrix = new Matrix(); 
matrix.scale(scale_x_percents,scale_y_percents); 

var resizedBd:BitmapData = new BitmapData(Math.floor(bd.width*scale_x_percents), Math.floor(bd.height*scale_y_percents), true, 0x000000); 
resizedBd.draw(bd, matrix, null, null, null, true); // true is smoothing option, it will blur sharpened pixels 

이미지 크기 조정에 문제가 있습니다. 스무딩이 작동하지 않거나 코드에 누락 된 항목이있는 것 같습니다. 어쩌면 매트릭스가 더 있어야할까요?액션 스크립트 : 부드럽게 비트 맵 데이터 크기 조정

원본 이미지 :

http://imageshack.us/a/img28/4784/dc7f2ec4b0f3323cdc4e01e.jpg

하고 결과이다 : 나는 다른 이미지의 무리를 연결할 수 있습니다

http://imageshack.us/a/img855/4784/dc7f2ec4b0f3323cdc4e01e.jpg

. 이상한 픽셀 배열이 존재합니다. 어떻게 든 고칠 수 있습니까?

jpeg 품질 100 % 및 stage.quality = 'best'를 테스트했지만 필요한 품질 결과를 제공하지 못했습니다.

+0

누구? 모든 팁이 할 것입니다. – Somebody

+0

괜찮아요. 나에게 잘 돌아가고 있습니다. 코드가 정상적으로 보인다는 것을 알 수 없습니다. (플랫폼이나 다른 시나리오 또는 외부 구성의 영향을받지 않아야하므로) 말할 필요가 없습니다. 스테이지에 올바른 BitmapData를 추가 하시겠습니까? – Cay

+0

BitmapData는 Loader 객체에서 선택됩니다. 사용자 컴퓨터에서. – Somebody

답변

4

BitmapData를 통해 BitmapData를 그릴 때 "가장 가까운"샘플링 모드 인 것으로 보입니다. 아마도 도움이 될 다음 가장 가능성이 보이는 원하는 결과 그려진 비트 맵에 적어도 쌍 선형 보간을 수행합니다 플래시의 기본 그래픽 렌더링을 사용

var sh:Shape=new Shape(); 
sh.graphics.beginBitmapFill(bd,matrix,false,true); 
sh.graphics.lineStyle(0,0,0); // no lines border this shape 
sh.graphics.drawRect(0,0,resizedBD.width,resizedBD.height); 
sh.graphics.endFill(); 
resizedBD.draw(sh); // or with smoothing on 

. 또한 해당 모양을 스테이지에 추가하면 stage.quality이 적용됩니다 (BTW에서는 업로드 된 그림을 표시하기 위해 모양을 사용하고 저장하기 위해 BitmapData를 그릴 수 있습니다). 그러나이 방법은 작동하지 않을 수 있습니다.이 권리를 테스트 할 수 없습니다. 지금.

+0

좋아, 고마워. 곧 테스트 할게. – Somebody

+0

작동 중! 젠장. 이 솔루션 뒤에는 어떤 마술이 숨어 있습니까? :) 내 지식 에서이 공백을 채우고있다. : D – Somebody

+0

다음은 새로운 샘플입니다. 이전과 비교할 수 있습니다. http://img832.imageshack.us/img832/2591/ed4cfedff10d978a5b85e3c.jpg 다시 한번 감사드립니다! :) – Somebody