BitmapData类不能正常获取Video中的像素
在制作大头贴程序时,发现直接使用BitmapData类绘制Video对象的像素值时,虽然已经设定了Video的 _width
、_height
属性,BitmapData还是只能绘制160×120个像素。
后来发现,Video的实际像素值是和width与height属性相关。这两个属性都是只读属性,不能设置。它们的值来源于Camera。使用 Camera.setMode 可以设置这两个值。
但是,即使使用setMode设定了Camera的属性,BitmapData仍然只能绘制160×120像素!代码如下:
1import flash.display.BitmapData;
2var cam:Camera = Camera.get();
3var bmp:BitmapData = new BitmapData(200, 200, false);
4my_video.attachVideo(cam);
5test_btn.onPress = function() {
6cam.setMode(200, 200, 15);
7bmp.draw(my_video);
8my_mc.attachBitmap(bmp, 0);
9};
在这里可以看到效果(需要摄像头和Flash Player 8):
怎么办?我的方法是使用一个影片剪辑包含Video对象。代码如下:
1import flash.display.BitmapData;
2var cam:Camera = Camera.get();
3var bmp:BitmapData = new BitmapData(200, 200, false);
4myVideo_mc.my_video.attachVideo(cam);
5test_btn.onPress = function() {
6cam.setMode(200, 200, 15);
7bmp.draw(myVideo_mc);
8my_mc.attachBitmap(bmp, 0);
9};
下面是效果:
下载源文件:
- 文章ID:187
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/video2bitmapdata/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。