WriteableBitmap 图片处理的问题
在WPF中我是这样修改图片的
public void TransferImageAlpha(Bitmap image)
{
for (int pixelX = 0; pixelX < image.Width; pixelX++)
{
for (int pixelY = 0; pixelY < image.Height; pixelY++)
{
System.Drawing.Color pixelColor = image.GetPixel(pixelX, pixelY);
if (pixelColor.A.Equals(0)) continue;
System.Drawing.Color newColor =System.Drawing.Color.FromArgb(pixelColor.A, labacolor.R, labacolor.G, labacolor.B);//System.Drawing.Color.FromArgb(128, pixelColor);
image.SetPixel(pixelX, pixelY, newColor);
}
}
}
但是在silverlight中我用
private void setImageSource(Image img, Color lbcolor)
{
WriteableBitmap bitmap = new WriteableBitmap(img,null); // image1 图片控件名
int imageWidth = bitmap.PixelWidth;
int imageHeight = bitmap.PixelHeight;
for (int pixelY = 0; pixelY < imageHeight; pixelY++)
{
for (int pixelX = 0; pixelX < imageWidth; pixelX++)
{
int pointx = imageWidth * pixelY + pixelX;
int pixel = bitmap.Pixels[pointx];
byte[] bytes = BitConverter.GetBytes(pixel);
if (bytes[3].Equals(0)) continue;
bytes[0]=lbcolor.B;
bytes[1]=lbcolor.G;
bytes[2]=lbcolor.R;
bitmap.Pixels[pointx] = BitConverter.ToInt32(bytes, 0);
}
}
img.Source = bitmap;
}
这两种处理完以后的效果不一样啊,这个是什么原因呢?请大侠指教