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' をテストしましたが、必要な品質結果が得られるものはありません。