我在wpf应用程序中有tiff图像。首先我使用memorystream将图像转换为字节,然后将字节转换为bitmapimage。我给图片提供了bitmapimage。我还拍摄了另一张图片,并且直接给出其图片路径,而无需转换。我观察到的是转换后图片的质量变低。为什么会发生?如何提高从字节转换后的图像质量?
我的代码如下。我使用了 File.ReadAllBytes(“filepath”)将图像转换为字节。
我用下面的方法来从字节[]得到的BitmapSource。然后,我在的BitmapSource分配给图像
public static System.Windows.Media.Imaging.BitmapSource ConvertBytesToBitmapSource(byte[] imageBytes)
{
System.Drawing.Bitmap source = new System.Drawing.Bitmap(ConvertBytesToImage(imageBytes));
IntPtr imagePtr = source.GetHbitmap();
System.Windows.Media.Imaging.BitmapSource bitmapSour = null;
try
{
bitmapSour = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(imagePtr,
IntPtr.Zero, System.Windows.Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
}
catch (Exception ex)
{
logger.Error("Error in converting bytes to BitmapSource", ex);
throw ex;
}
finally
{
DeleteObject(imagePtr);
}
return bitmapSour;
}
这是一个好题。如果没有压缩算法,除了伽马校正,我不会看到它们会如何失去质量。 – 2011-01-21 07:46:36