.Net, XNA, Kinect中各种图的转换
来源:互联网 发布:网络语废鱼是什么意思 编辑:程序博客网 时间:2024/05/20 20:48
几个概念:
Texture2D ——XNA的2D贴图
Bitmap ——位图,不解释
Color类,顾名思义
RGBA
R == red, G == green, B == blue, A == α 控制图像透明度的,0代表透明
各种信息的转换
Color[]-Bitmap
Color imagColor = Color.FromArgb(alpha, red, green, blue); // alpha, red, green, blue 为int
bkImage.SetPixel(x, y, imagColor); // bkImage 为 Bitmap
ColorFrame-Bitmap-byte[]
ColorFrame是Kinect彩色摄像头返回的一帧的图像格式,在使用的时候都要利用CopyPixelDataTo()方法,将信息存入byte[],也就是说这里其实是讲的如何做到byte[]与Bitmap的转换,我发现这种问题国内真心比不过国外的程序员,下面的程序也是我从国外的网上摘来改的,原来这个牛人是写成了Bitmap BytesToBitmap(byte[] bytes)的函数了,不过精髓没变,后来我觉得我还是太挫了,应该自己就可以写出来的,但是这个牛人用的变量太漂亮了,效率应该比较高
// 将像素信息赋值到位图,colorBitmap就是最后要得到的位图变量,colorPixels就是byte[]
BitmapData bmpData = new BitmapData();
bmpData = colorBitmap.LockBits(
new Rectangle(0, 0, colorBitmap.Width, colorBitmap.Height),
ImageLockMode.WriteOnly,
colorBitmap.PixelFormat);
IntPtr ptr = bmpData.Scan0; // bmp内存的首地址
Marshal.Copy(colorPixels, 0, ptr,
colorPixels.Length);
this.colorBitmap.UnlockBits(bmpData);
至于Bitmap怎么到byte[]跟你的Format有关,也就是你要知道每个像素点的RBGA值的位宽
ushort[]-Texture2D
this.Width, this.Height,
true, SurfaceFormat.Bgra4444); // Initialize Texture2D
this.shadowTexture2D.SetData(shadowColor, 0, shadowColor.Length);
this.shadowColor[depthIndex] = (0 << 12) + (0 << 8) + (0 << 4) + 0;
int16=short;int32=int;int64=long;
Color[]-Texture2D ——此思路不可行
http://msdn.microsoft.com/en-us/library/bb198834.aspx Setdata不可用 Error:The type you are using for T in this method is an invalid size for this resource.
- .Net, XNA, Kinect中各种图的转换
- kinect的各种事情。。。
- XNA使用的各种问题杂录
- Asp.Net和LinQ中,把数据库字段转入变量的各种格式转换!(转换示例)
- 在.NET Framework中,实现各种进制的数值间的转换
- java中各种进制间的转换
- java中各种类型的相互转换
- VB中各种进制的转换
- C# 中各种类型的相互转换
- Oracle中Date的各种格式转换
- VC中各种数据类型之间的转换
- C#中DateTime时间的各种转换
- 关于Java中各种数据类型的转换
- QT中各种数据类型之间的转换
- MFC中各种数据类型的转换
- action中result的各种转换类型
- C++中各种类型的相互转换
- VC++2010中各种类型的转换
- 内存对齐详解
- FORALL中的values of和indices of的区别
- 安装 memcache
- Android apk 真机安装方法
- 一个实用的 Javascript XML to JSON Object 对象的转换 (JQuery)
- .Net, XNA, Kinect中各种图的转换
- CSDN的心声
- 17个新手常见Python运行时错误
- c++如何生成release版本
- Lua-计算表中有多少个元素-#table的用法
- Cocos2d-X游戏工具开发之一:将Cocos2d-X嵌入MFC的子窗体方法讲解
- Java7遍历文件夹
- 《网络经济与企业管理》思维导图总结
- 随机采样问题