나는 wpf application.First에서 tiff 이미지를 memorystream을 사용하여 이미지를 바이트로 변환 한 다음 바이트를 bitmap 이미지로 변환했습니다. 나는 이미지에 비트 맵 이미지를 준다. 나는 또한 다른 이미지를 가져 와서 변환없이 이미지 소스 경로를 직접 제공한다. 내가 관찰 한 것은 변환 후의 이미지 품질이 낮아졌다는 것이다. 왜 그렇게됩니까?바이트에서 변환 후 이미지 품질을 높이려면 어떻게해야합니까?
내 코드는 다음과 같습니다. File.ReadAllBytes ("filepath")를 사용하여 이미지를 바이트로 변환했습니다.
내가 바이트 []에서 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;
}
을 대해 참조 할 수
로 BitScalingMode 종속성 속성을 사용하여 높은 품질을 얻기 위해 명시 적으로 이미지의 품질을 지정해야 문제. 감마 수정 이외의 압축 알고리즘이 없다면 품질이 떨어질 수 있습니다. –