我正在使用以下代码将位图转换为jpeg。位图通过300 dpi(水平/垂直分辨率)传递,但CreateBitmapSourcefromHBitmap方法总是更改要保存的后续jpeg为96dpi。
有没有办法设置源以保留原始的300dpi?dpiX和dpiY值是只读的。
提前致谢。
有没有办法设置源以保留原始的300dpi?dpiX和dpiY值是只读的。
提前致谢。
public static MemoryStream GetJpgMemoryStream(Bitmap bitMap, int jpgQuality)
{
IntPtr hBitmap = bitMap.GetHbitmap();
try
{
BitmapSource source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
var jpegBitmapEncoder = new JpegBitmapEncoder();
jpegBitmapEncoder.QualityLevel = jpgQuality;
jpegBitmapEncoder.Frames.Add(BitmapFrame.Create(source));
var jpegStream = new MemoryStream();
jpegBitmapEncoder.Save(jpegStream);
jpegStream.Flush();
return jpegStream;
}
}