将图像保存为更大的分辨率WPF C#

时间:2015-03-11 18:48:04

标签: c# wpf image canvas

我要做的是以更高的分辨率保存图像,因此它的大小足以用于在A3尺寸的纸张上打印,

我从资源中使用的原始图像是2344 x 2383像素(164kb), 放置在画布上的图像为555 x 555,

我想知道有没有办法从画布中保存这个图像,但是在更大的尺寸上,我需要它更接近原始图像尺寸,

这是我目前的代码,

按钮点击事件

 public static class ImageCapturer
 {
     public static void SaveToBmp(FrameworkElement visual, string fileName)
     {
         var bitmapEncoder = new BmpBitmapEncoder();
         SaveUsingEncoder(visual, fileName, bitmapEncoder);
     }

     public static void SaveToPng(FrameworkElement visual, string fileName)
     {
         var pngBitmapEncoder = new PngBitmapEncoder();
         SaveUsingEncoder(visual, fileName, pngBitmapEncoder);
     }

     private static void SaveUsingEncoder(FrameworkElement visual, string fileName, BitmapEncoder encoder)
     {
         var renderTargetBitmap = new RenderTargetBitmap((int)visual.ActualWidth, (int)visual.ActualHeight, 92, 92, PixelFormats.Pbgra32);
         renderTargetBitmap.Render(visual);

         var crop = new CroppedBitmap(renderTargetBitmap, new Int32Rect(575, 60, 555, 550));


         var bitmapFrame = BitmapFrame.Create(renderTargetBitmap);
         encoder.Frames.Add(BitmapFrame.Create(crop));

         using (var fileStream = new FileStream(fileName, FileMode.OpenOrCreate))
         {
             encoder.Save(fileStream);
         }
     }
 }

如果有人可以请给我一些建议,我将不胜感激, 这已经很久了,

如果我更改DPI,图像会变大,但我只会看到原始图像的一角,

请查看这些图片以供参考,

目前的图片是: https://www.dropbox.com/s/58k5nm1lozp2r0c/BSM_Power_Wheel.png?dl=0 但它太小了@ 555 x 555

将dpi从92更改为150后的图像: https://www.dropbox.com/s/zgkwwd0scs9giz8/BSM_Power_Wheeldgdd.png?dl=0

谢谢:)

0 个答案:

没有答案