C# 从项目资源加载位图
我想更改图像的一些像素。映像生成操作设置为“资源”。我无法获取位图对象,因此可以使用下面的for循环进行更改C# 从项目资源加载位图,c#,wpf,bitmap,C#,Wpf,Bitmap,我想更改图像的一些像素。映像生成操作设置为“资源”。我无法获取位图对象,因此可以使用下面的for循环进行更改 Bitmap bmp = new Bitmap("pack://application:,,,/ovl_kommen.png"); //Change Black pixels to color for (int x = 0; x < bmp.Width; x++) { for (int y
Bitmap bmp = new Bitmap("pack://application:,,,/ovl_kommen.png");
//Change Black pixels to color
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
if (bmp.GetPixel(x,y) == System.Drawing.Color.Black)
{
bmp.SetPixel(x, y, System.Drawing.Color.Blue);
}
}
}
Bitmap bmp=新位图(“pack://application:,,,/ovl_kommen.png);
//将黑色像素更改为彩色
对于(int x=0;x
我的下一个问题是,向用户查看修改后的位图。我有一个WPF图像控件img_kommen,我想将位图设置为源。
img_kommen.Source=bmp
与其操纵像素值,不如使用填充的矩形
并将图标图像应用为,因为
此属性仅使用所提供笔刷的alpha通道值。笔刷渲染内容的其他通道(红色、绿色或蓝色)将被忽略
例如:
<Rectangle x:Name="icon" Fill="Black" Width="100" Height="100">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="ovl_kommen.png" Stretch="Uniform"/>
</Rectangle.OpacityMask>
</Rectangle>
System.Drawing.Bitmap是WinForms,而不是WPF。您通常不会在WPF应用程序中使用它。WPF的等价物是什么?它是BitmapImage。还有WriteableBitmap,它允许修改像素缓冲区。是否有关于如何设置/获取位图的像素颜色的指南/示例?WPF提供了更好的方法来实现这一点。例如,您可以使用路径而不是图像控件,并具有图标形状的几何图形。或者将图像放入一个ImageBrush中,该画笔用作一个具有适当填充(即黑色或红色)的矩形的不透明遮罩。这太棒了!谢谢你的帮助!
icon.Fill = Brushes.Red;