0
我需要在圖像,以降低像素從480 X 480至30×30。這需要像素的下采樣,我沒有看到任何方法以除去位圖圖像的各個像素。縮放採樣位圖圖像像素actionscript 3?
我需要這個採樣,因爲我學習失真圖像處理 - 在短暫的一面。
任何幫助,在此,將不勝感激。
我需要在圖像,以降低像素從480 X 480至30×30。這需要像素的下采樣,我沒有看到任何方法以除去位圖圖像的各個像素。縮放採樣位圖圖像像素actionscript 3?
我需要這個採樣,因爲我學習失真圖像處理 - 在短暫的一面。
任何幫助,在此,將不勝感激。
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;
}
}
}
}
結果:
有隻使一個新的BitmapData這是30×30,然後設置你的算法對新的BitmapData複製或設置相應的像素,而不是試圖減去離開像素的問題從最初的一個? – shaunhusain
謝謝,我會盡力做到這一點。我只專注於一種解決方案。 –