如何在Silverlight中从网络摄像头中翻转视频
我注意到,当我从Silverlight视频中的网络摄像头进行视频捕捉时,它是“反向”,意味着当我向右移动时,屏幕向左移动。 有什么方法可以翻转视频捕捉?
我可以向右翻转,这就是你如何做到的。
private WriteableBitmap flipVideo(WriteableBitmap notFliped)
{
WriteableBitmap motionBmp = new WriteableBitmap(notFliped.PixelWidth, notFliped.PixelHeight);
int leftRight = -1;
int[] flipedArray = motionBmp.Pixels;
int[] currentArray = notFliped.Pixels;
for (int h = 0; h < 480; h++)
{
leftRight++;
for (int w = 0; w < 640; w++)
{
flipedArray[h * 640 + w] = currentArray[639 + (h * 640) - w];
}
}
return motionBmp;
}
请注意,640和480是相机分辨率,并将其调整为您的值。 我不知道摄像头默认支持任何其他分辨率。 但如果640 * 480,那么你可以使用这个代码。 此外,您需要了解即使一个凸轮框架以像素为单位((3x3)图片)
0,1,2 ............................................. ......................................... 3,4,5 .... .................................................. ................................ 6,7,8 ............... .................................................. .......................
bitmap.Pixels返回[] = {0,1,2,3..8},所以你需要将值逐行翻转
2,1,0 ............................................. ......................................... 5,4,3 .... .................................................. ................................ 8,7,6 ............. .................................................. .......................
这就是上面的代码所做的......干杯......而忽略了这些点......
我通过在Blend中打开项目来翻转一个矩形,选择了我的矩形 - >属性 - >转换 - > Y翻转。我之前没有看到它...(悲伤的长号)
链接地址: http://www.djcxy.com/p/14233.html