我有一個閃光照相亭(網絡攝像頭)應用程序,我試圖包裝,但似乎有試圖從縮小的視頻窗口保存640x480圖像的問題。該視頻似乎可以縮小,但是當我將其繪製到位圖時,它正在縮小照片,因此我必須創建2.0的矩陣縮放比例以將其重新調整爲640x480,並且我不確定這樣做是否會傷害到圖像的質量。我不想使用任何調整大小黑客(特別是升級)。從AS3縮放視頻保存原始位圖數據
我是新來的AS3,所以請原諒我。
import flash.display.Bitmap;
import flash.display.BitmapData;
import com.adobe.images.JPGEncoder;
var cam:Camera = Camera.getCamera();
cam.setQuality(0, 100);
cam.setMode(640,480,30,true); // setMode(videoWidth, videoHeight, video fps, favor area)
var video:Video = new Video();
video.attachCamera(cam);
video.x = 382;
video.y = 225;
video.width = 256;
video.height = 192;
addChild(video);
var bitmapData:BitmapData = new BitmapData(640,480);
var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.x = 648;
bitmap.y = 225;
bitmap.width = 256;
bitmap.height = 192;
addChildAt(bitmap, 18);
photoCapture.buttonMode = true;
photoCapture.addEventListener(MouseEvent.CLICK,captureImage);
這裏是髒的部分...
function captureImage(e:MouseEvent):void {
var scale:Number=2.0;
var matrix:Matrix = new Matrix();
matrix.scale(scale, scale);
bitmapData.draw(video, matrix, null, null, null, true);
var jpgEncoder:JPGEncoder=new JPGEncoder(100);
var byteArray:ByteArray=jpgEncoder.encode(bitmapData);
var fileReference:FileReference=new FileReference();
fileReference.save(byteArray, ".jpg");
}
基本上我只是想兩個小盒子的約256×192顯示視頻流(640×480)和捕獲的照片(640×480),當我保存它實際上保存640x480圖像。
我使用video.scaleX/Y結束了在舞臺上的大小,留下了原始尺寸的位圖/視頻數據。 – bfritz