我正在尝试在wp7上进行图像处理, 现在我完成了convertImagetoBytes和convertByteToBitmapImage。
我想我可以更改字节数组中的值来进行一些图像处理工作, 但事实证明它是图片框中的黑色图像。 (现在我只想处理.jpg图像)
convertImagetoBytes
byte[] data = null;
using (MemoryStream stream = new MemoryStream())
{
WriteableBitmap wBitmap = new WriteableBitmap(bitmapImage);
wBitmap.SaveJpeg(stream, wBitmap.PixelWidth, wBitmap.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
data = stream.GetBuffer();
}
convertBytestoImage
MemoryStream stream = new MemoryStream(bytes);
stream.Position = 0;
BitmapImage bi = new BitmapImage();
bi.SetSource(stream);
return bi;
现在,如果我更改字节数组中的值,就像这样(灰度)
for (int i = 0; i < bytesCount; i+=4)
{
colorTemp = data[i+2];
data[i+1 ] =data[i+2]= data[i + 3] = (byte)colorTemp;
}
图像变黑了。
答案 0 :(得分:1)
您已将其保存为JPEG格式 - 但您似乎正在尝试将其更改为原始数据。你不能只是弄乱JPEG文件的数据来伪造灰度。
顺便说一下,您应该使用stream.ToArray
代替stream.GetBuffer()
,因为后者通常会比实际数据更大。
答案 1 :(得分:0)