줄 감싸는 중이지만 축소 된 비디오 창에서 640x480 이미지를 저장하는 데 문제가있는 것처럼 보이는 플래시 사진 부스 (웹 캠) 응용 프로그램이 있습니다. 비디오는 잘 내려 가고있는 것처럼 보입니다.하지만 비트 맵에 그리면 사진이 더 축소되어서 크기를 2.0으로 늘려서 크기를 640x480으로 다시 만들어야합니다. 그렇다면 그렇게하는 것이 확실하지 않습니다. 이미지의 품질. 나는 어떤 크기 조절 해킹 (특히 up-scaling)을 사용하고 싶지 않다.AS3의 비디 오 비디오에서 원래의 bitmapData를 저장하십시오.
나는 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");
}
는 기본적으로 난 그냥 싶어 ... 더러운 부분이 작은 상자의 약 256x192 실제로 저장할 때 비디오 스트림 (640 × 480) 및 캡처 사진 (640 × 480)를 표시하고 640x480 이미지를 저장합니다.
video.scaleX/Y를 사용하여 비트 맵/비디오 데이터를 원본 크기로 유지하면서 스테이지 크기를 줄였습니다. – bfritz