如何将位图中的像素设置为白色?

时间:2010-11-09 01:14:38

标签: c#

这不起作用:

Color col;
objBitmap = new Bitmap(Resource1.im);
col = Color.FromName("White");
// Perform an operation on the Color value here.
objBitmap.SetPixel(x, y, col);

当我将图像加载到图片框控件时,它仍然是黑色(应该是白色的像素)。

编辑:

这是我在编辑后将位图加载到图片框控件的方法:

objBitmap.Save(Resource1.im.ToString());

this.pictureBox2.Image = ResizeBitmap(Resource1.im, 100, 100);

objBitmap.Dispose();

3 个答案:

答案 0 :(得分:3)

你可能在PictureBox中显示错误的位图。

在调试器的“监视”窗口中,右键单击objBitmap并点击somePictureBox.Image,然后单击“创建对象ID”。
如果两个对象具有不同的ID,则表示您显示的图像不正确。

编辑Bitmap.Save采用文件名
您的代码在当前目录中创建名为Bitmap的文件 将其更改为pictureBox2.Image = ResizeBitmap(objBitmap, 100, 100);

ResX文件是只读的;您无法在运行时修改存储的位图 相反,您可以将修改后的图像放在静态Bitmap字段中。 (并确保在您不再需要它之前不要将其丢弃)


请注意,顺便说一下,你可以写

Color col = Color.White;

答案 1 :(得分:2)

不确定修改某种资源的Bitmap是否是个好主意。我Clone它是安全的。话虽如此,我无法重现问题。

Bitmap objBitmap = (Bitmap)Resource1.im.Clone();

答案 2 :(得分:1)

你检查了col设置的内容吗?特别是alpha组件设置为什么? IE浏览器。你可能会添加透明白色?