我在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