画像のピクセルを 480 X 480 から 30 X 30 に減らす必要があります。これには、ピクセルのダウンサンプリングが必要です。ビットマップ画像の個々のピクセルを削除する方法がわかりません。
簡単に言えば、画像処理の歪みを研究しているため、このダウンサンプリングが必要です。
これについての助けをいただければ幸いです。
画像のピクセルを 480 X 480 から 30 X 30 に減らす必要があります。これには、ピクセルのダウンサンプリングが必要です。ビットマップ画像の個々のピクセルを削除する方法がわかりません。
簡単に言えば、画像処理の歪みを研究しているため、このダウンサンプリングが必要です。
これについての助けをいただければ幸いです。
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Matrix;
import flash.net.URLRequest;
public class DownSampling extends Sprite
{
private var _loader : Loader;
public function DownSampling()
{
_loader = new Loader;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImgLoaded);
// Get the bitmap
_loader.load(new URLRequest("https://appharbor.com/assets/images/stackoverflow-logo.png"));
}
private function onImgLoaded(e : Event) : void
{
var currentBitmapdata : BitmapData = Bitmap(_loader.content).bitmapData;
var i : uint = 9;
var downFactor : Number = 0.2;
// this will reduce size by 20%
var downMat : Matrix = new Matrix;
downMat.scale(1 - downFactor, 1 - downFactor);
while(--i)
{
// Create new bitmapdata but smaller
var smallerImg : BitmapData = new BitmapData(currentBitmapdata.width * (1-downFactor), currentBitmapdata.height * (1-downFactor), true, 0);
// Copy and apply scale
smallerImg.draw(currentBitmapdata, downMat);
// Add to stage and set alpha to 50%
addChild(new Bitmap(smallerImg)).alpha = .5;
// Apply the same transform next loop
currentBitmapdata = smallerImg;
}
}
}
}
結果 :