C# 为什么我在位图上进行像素操作后,图片没有任何改变呢?
发布网友
发布时间:2024-09-26 18:08
我来回答
共2个回答
热心网友
时间:2024-10-06 11:40
//试试这个
private void button1_Click(object sender, EventArgs e)
{
Bitmap bm = new Bitmap("D:\\1.bmp");
bm = CreateNonIndexedImage(bm);
pictureBox1.Image = DrawLine(bm);
}
private Bitmap DrawLine(Bitmap bm)
{
for (int x = 0; x < 100; x += 5)
for (int y = 0; y < 100; y += 5)
bm.SetPixel(x, y, Color.Red);
return bm;
}
public Bitmap CreateNonIndexedImage(Image src)
{
Bitmap bm = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
using (Graphics gfx = Graphics.FromImage(bm))
{
gfx.DrawImage(src, 0, 0);
}
return bm;
}
热心网友
时间:2024-10-06 11:46
SetPixel操作的是像素。 一个像素比较小。你的操作没问题,已经改变了。放大数倍应该能看到。
你把x,y的值写大一写。
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
bmp.SetPixel(i,j,Color.Red);
}
}
这样设置的是一个100*100像素红色正方体。 这样不用放大就可以看出来。
热心网友
时间:2024-10-06 11:46
//试试这个
private void button1_Click(object sender, EventArgs e)
{
Bitmap bm = new Bitmap("D:\\1.bmp");
bm = CreateNonIndexedImage(bm);
pictureBox1.Image = DrawLine(bm);
}
private Bitmap DrawLine(Bitmap bm)
{
for (int x = 0; x < 100; x += 5)
for (int y = 0; y < 100; y += 5)
bm.SetPixel(x, y, Color.Red);
return bm;
}
public Bitmap CreateNonIndexedImage(Image src)
{
Bitmap bm = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
using (Graphics gfx = Graphics.FromImage(bm))
{
gfx.DrawImage(src, 0, 0);
}
return bm;
}
热心网友
时间:2024-10-06 11:46
SetPixel操作的是像素。 一个像素比较小。你的操作没问题,已经改变了。放大数倍应该能看到。
你把x,y的值写大一写。
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
bmp.SetPixel(i,j,Color.Red);
}
}
这样设置的是一个100*100像素红色正方体。 这样不用放大就可以看出来。