2012-07-18 48 views
0

大家好我已经写了一个示例代码来找出图像中的黑色像素,现在我想将所有这些像素保存到阵列和想保存与保存像素的特定图像可以有一个人帮我如何从图像保存所需像素并使用该像素绘制图像

假定我的形象,我得到的是像素如下

我会阅读所有的黑色像素及想保存他们,从我想重新形象Fallout透明背景。这是我写的

for (int i = 0; i < b.Width; i++) 
     { 
      for (int j = 0; j < b.Height; j++) 
      { 
       Color pixelColor = b.GetPixel(i, j); 

       Response.Write("The color is " + pixelColor); 

       if (pixelColor.ToArgb() == Color.Black.ToArgb()) 
       { 
        //Will get black color here 
       } 
      } 
     } 

有人可以帮我剩下的。

+1

代替创建新的图像从所述根据像素,修改现有的图像。将所有不是黑色的像素设置为透明:http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setpixel.aspx – 2012-07-18 11:58:29

+0

嗨'Nico Schertler'我按照说的做了,但是当我有蓝色的签名图像不转换为透明 – Dotnet 2012-07-18 12:46:17

回答

0

与同样大小创建第二位图

Bitmap newBitmap = new Bitmap(oldBitmap.Width, oldBitmap.Height); 

你可以对比的颜色直接

if (pixeColor == Color.Black) { 

里面if { }

newBitmap.SetPixel(...); 

就是这样,但如果你只是婉透明版本,您可以使用Bitmap.MakeTransparent(Color);

PS:GetPixel()和SetPixel()是极其缓慢的,尝试使用不安全的位图访问