麻烦给我解释一下下面一段C#程序是什么意思?

publicDiffuseMaterialm_material;publicvoidSetRGBMaping(){WriteableBitmapwriteableBitm... public DiffuseMaterial m_material;
public void SetRGBMaping()
{
WriteableBitmap writeableBitmap = new WriteableBitmap(64, 64, 96, 96, PixelFormats.Bgr24, null);
writeableBitmap.Lock();

unsafe
{
byte* pStart = (byte*)(void*)writeableBitmap.BackBuffer;
int nL = writeableBitmap.BackBufferStride;
for (int r = 0; r < 16; r++)
{
for (int g = 0; g < 16; g++)
{
for (int b = 0; b < 16; b++)
{
int nX = (g % 4) * 16 + b;
int nY = r*4 + (int)(g/4);

*(pStart + nY * nL + nX * 3 + 0) = (byte)(b * 17);
*(pStart + nY * nL + nX * 3 + 1) = (byte)(g * 17);
*(pStart + nY * nL + nX * 3 + 2) = (byte)(r * 17);
}
}
}
}
writeableBitmap.AddDirtyRect(new Int32Rect(0, 0, 64, 64));
writeableBitmap.Unlock();
ImageBrush imageBrush = new ImageBrush(writeableBitmap);
imageBrush.ViewportUnits = BrushMappingMode.Absolute;

m_material = new DiffuseMaterial();
m_material.Brush = imageBrush;
m_bPseudoColor = false;
}
展开
 我来答
刷新①丅5e6
2014-11-14 · TA获得超过4333个赞
知道大有可为答主
回答量:1499
采纳率:64%
帮助的人:589万
展开全部
你哪里不懂?
是unsafe块里吗?
C#使用unsafe关键字后,就可以像C++一样使用指针了...但其实不到万不得已C#是不建议这么干的,有风险...
追问
哦哦,那个我还知道,我是刚开始学C#哈,主要是上面关于 writeableBitmap的不太懂
追答
自己谷歌百度一下“WriteableBitmap”吧...这个东西我也没用过...
大致看了一下,这个函数的功能应该就是对一张图像的某些像素的RGB值进行了处理(乘以17)。WriteableBitmap应该就是一个处理图像的类。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式