示例代码:
<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上显示。图像的其余部分用黑色填充。如果你能提供一些示例代码来解决这个问题,那就太棒了!