将位图检索到其原始高度和宽度 - WPF

时间:2015-07-30 17:20:59

标签: c# wpf

示例代码:

<Canvas Name="Canvas1">
      <!-- Overlayed Images Will Go Here -->
      <Image Name="Image1" Height="575" Source="..."/>
      <Image Name="Image2" Height="100" Source="..."/>
</Canvas>

IMAGE1的实际高度为&#34; 1130&#34;。但是当我在屏幕上显示时,IMAGE1的高度是&#34; 575&#34;如上所示。现在,我想将其作为JPEG文件保存回硬盘。因为,现在有两个图像是在画布中叠加的图像。以下是我必须执行的示例代码:

public static void CreateAndSaveBitmap(Image Image1, Canvas canvas, string filename)
{
      try
      {
            double Height = Image1.Height;  // Here is one change
            double Width = Image1.Width;  // Here is another change

            RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)Width, (int)Height, 96d, 96d, PixelFormats.Pbgra32);

            canvas.Measure(new Size((int)Width, (int)Height));
            canvas.Arrange(new Rect(new Size((int)Width, (int)Height)));

            renderBitmap.Render(canvas);

            JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(renderBitmap));

            using (FileStream file = File.Create(filename))
            {
                  encoder.Save(file);
            }
      }
      catch (Exception ex)
      {
            MessageBox.Show(ex.Message);
      }
}

我可以保存图像,但问题是,它没有原始高度&#34; 1130&#34; - 这是它的原始高度。它的高度为&#34; 575&#34; - 在UI上显示。图像的其余部分用黑色填充。如果你能提供一些示例代码来解决这个问题,那就太棒了!

0 个答案:

没有答案