BitmapData类不能正常获取Video中的像素

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:BitmapData类不能正常获取Video中的像素
  • 本文链接:http://zengrong.net/post/187.htm

在制作大头贴程序时,发现直接使用BitmapData类绘制Video对象的像素值时,虽然已经设定了Video的 _width_height 属性,BitmapData还是只能绘制160×120个像素。

后来发现,Video的实际像素值是和width与height属性相关。这两个属性都是只读属性,不能设置。它们的值来源于Camera。使用 Camera.setMode 可以设置这两个值。

但是,即使使用setMode设定了Camera的属性,BitmapData仍然只能绘制160×120像素!代码如下:

import flash.display.BitmapData;
var cam:Camera = Camera.get();
var bmp:BitmapData = new BitmapData(200, 200, false);
my_video.attachVideo(cam);
test_btn.onPress = function() {
cam.setMode(200, 200, 15);
bmp.draw(my_video);
my_mc.attachBitmap(bmp, 0);
};

在这里可以看到效果(需要摄像头和Flash Player 8):

怎么办?我的方法是使用一个影片剪辑包含Video对象。代码如下:

import flash.display.BitmapData;
var cam:Camera = Camera.get();
var bmp:BitmapData = new BitmapData(200, 200, false);
myVideo_mc.my_video.attachVideo(cam);
test_btn.onPress = function() {
cam.setMode(200, 200, 15);
bmp.draw(myVideo_mc);
my_mc.attachBitmap(bmp, 0);
};

下面是效果:

下载源文件:

  Video2BitmapData (9.6 KiB, 1,270 hits)