我是Windows Phone *开发的新手,在我的项目中,我需要根据我的要求将图像像素转换为红色,绿色,紫色等颜色。任何人都可以发送示例代码来执行此过程吗?
这将是一个很大的帮助。
感谢。
答案 0 :(得分:0)
请参阅我的解决方案,将图像转换为灰度。
Convert A Dynamic Bitmap To Gray Scale
注意循环,我从像素阵列中解码每个红色,绿色,蓝色像素,然后用Buffer.BlockCopy
重新组合图片。所以基本上你可以用你想要的那些组件修改你的图片然后BlockCopy它。
private void PutPixel(int x, int y, byte red, byte green, byte blue, ref WriteableBitmap wb)
{
if(wb == null)
return;
int[] PixelsBuffer = new int[1];
unchecked
{
PixelsBuffer[0] = (int)( 0xFF000000 | (int)red << 16 | (int)green << 8 | blue);
}
int offset = ((y * wb.PixelWidth) + x) * 4;
Buffer.BlockCopy(PixelsBuffer, 0, wb.Pixels, offset, 4);
}
代码在行动
<Image x:Name="myImage" Source="/Assets/AlignmentGrid.png" Stretch="None" />
// draw a white line from (0,0) to (100, 100)
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
WriteableBitmap wb = new WriteableBitmap((BitmapImage)this.myImage.Source);
for (int i = 0; i < 100; i++)
{
PutPixel(i, i, 0xFF, 0xFF, 0xFF, ref wb);
}
myImage.Source = wb;
}