c# GDI 里的Bitmap
Eda 2012-03-19 04:59:34 Bitmap如何控制像素呀,比如我有一张图片 图片里有一点是透明的 当我 换这图片的颜色的时候 不能把这个透明的也换了
Bitmap bit = new Bitmap(2480,3508);
Bitmap bit1 = new Bitmap(@"E:\damowang\Solution1\WebApplication1\image\2155.png");
int width = bit1.Width;
int height = bit1.Height;
Bitmap bit2 = new Bitmap(@"E:\damowang\Solution1\WebApplication1\image\2011100227.png");
Color c;
for (int i = 0; i < bit1.Width; i++)
{
for (int j = 0; j < bit1.Height; j++)
{
c = bit1.GetPixel(i, j);
int nPixelR = 0;
int nPixelG = 0;
int nPixelB = 0;
if (sb == 1)
{
nPixelR = c.R;
nPixelG = c.G - 255;
nPixelB = c.B - 255;
}
else if (sb == 2)
{
nPixelR = c.R - 255;
nPixelG = c.G;
nPixelB = c.B - 255;
}
else if (sb == 3)
{
nPixelR = c.R - 255;
nPixelG = c.G - 255;
nPixelB = c.B;
}
nPixelR = Math.Max(nPixelR, 0);
nPixelR = Math.Min(255, nPixelR);
nPixelG = Math.Max(nPixelG, 0);
nPixelG = Math.Min(255, nPixelG);
nPixelB = Math.Max(nPixelB, 0);
nPixelB = Math.Min(255, nPixelB);
bit1.SetPixel(i, j, Color.FromArgb((byte)nPixelR, (byte)nPixelG, (byte)nPixelB));
}
}
Graphics s = Graphics.FromImage(bit);//在此图片上绘制
s.Clear(Color.White);
s.DrawImageUnscaled(bit1, 500, 400);
s.DrawImageUnscaled(bit2, 40, 39);
string pa = System.Web.HttpContext.Current.Server.MapPath("~/image/");
string fileName = DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Second + DateTime.Now.Millisecond + ".png";
string lujing = pa + fileName;
bit.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
return lujing;
求解