gpt4 book ai didi

c# - 在 C# 中为 Silverlight 的 WriteableBitmap 将 Int 转换为 Color

转载 作者:可可西里 更新时间:2023-11-01 09:06:55 25 4
gpt4 key购买 nike

在 Silverlight 3 中,现在有一个 WriteableBitmap,它提供获取/放置像素的能力。这可以像这样完成:

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

基本上,设置像素涉及设置其颜色,这是通过将 alpha、红色、蓝色、绿色值移位为整数来实现的。

我的问题是,如何将整数变回颜色?这个例子中缺失的地方是什么:

// getting a pixel example
int 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 channel ,这就完成了工作:

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

关于c# - 在 C# 中为 Silverlight 的 WriteableBitmap 将 Int 转换为 Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com