在Silverlight的WriteableBitmap中将Int转换为C#中的颜色

在Silverlight的WriteableBitmap中将Int转换为C#中的颜色,第1张

概述在Silverlight 3中,现在有一个WriteableBitmap,它提供了get / put像素的能力.这可以这样做: // setting a pixel exampleWriteableBitmap bitmap = new WriteableBitmap(400, 200);Color c = Colors.Purple;bitmap.Pixels[0] = c.A << 24 在Silverlight 3中,现在有一个WriteableBitmap,它提供了get / put像素的能力.这可以这样做:

// setting a pixel exampleWriteableBitmap bitmap = new WriteableBitmap(400,200);color c = colors.Purple;bitmap.Pixels[0] = c.A << 24 | c.R << 16 | c.G << 8 | c.B;

基本上,设置像素涉及设置其颜色,并将Alpha,red,blue,green值分解为整数.

我的问题是,你怎么把一个整数转回一个颜色?在这个例子中缺少的是什么:

// getting a pixel exampleint colorAsInt = bitmap.Pixels[0];color c;// Todo:: fill in the color c from the integer ??

感谢你可能有任何帮助,我只是没有在我的位移,我相信别人会遇到这个路障在某个时候.

解决方法 使用反射镜我发现如何在标准的.net调用中解析R,G,B(在Silverlight中不可用):

System.Drawing.colorTranslator.FromWin32()

从那以后我猜想如何获得Alpha通道,这样做的工作:

color c2 = color.FromArgb((byte)((colorAsInt >> 0x18) & 0xff),(byte)((colorAsInt >> 0x10) & 0xff),(byte)((colorAsInt >> 8) & 0xff),(byte)(colorAsInt & 0xff));
总结

以上是内存溢出为你收集整理的在Silverlight的WriteableBitmap中将Int转换为C#中的颜色全部内容,希望文章能够帮你解决在Silverlight的WriteableBitmap中将Int转换为C#中的颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存