如何重叠图像并将其存储在新的图像对象中
本文关键字:图像 存储 对象 何重叠 重叠 | 更新日期: 2023-09-27 17:56:20
我有两个图像,现在我想覆盖图像,这样另一个图像出现在另一个图像的中心或左上角,然后当最后两个图像都被覆盖时,我可以将其存储在另一个新的图像对象中,我想在代码后面而不是xaml,怎么做?
if (((Grid)sender).Children.Count > 0)
{
gridBackground = (ImageBrush)(((Grid)sender).Background);
gridBackImage = new System.Windows.Controls.Image();
gridBackImage.Source = gridBackground.ImageSource;
}
System.Windows.Controls.Image imgRejectIcon;
if (((Grid)sender).Children.Count > 0)
{
imgRejectIcon = (System.Windows.Controls.Image)(((Grid)sender).Children[0]);
}
现在我想合并 gridBackImage 和 imgRejection 并将其存储在新的图像对象中
你可以按照你想要的任何方式排列你的两个Image
,我会把这段代码留给你做(在 XAML 中做起来要简单得多)。在 WPF 中,所有 UI 控件都扩展Visual
类。当与 RenderTargetBitmap.Render
方法一起使用时,这对于从 UI 控件进行BitmapImage
非常有用。
首先,将两个Image
控件排列成 Grid
或其他容器控件,然后将容器控件传递给 RenderTargetBitmap.Render
方法并创建一个如下所示的Image
:
RenderTargetBitmap renderTargetBitmap =
new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
renderTargetBitmap.Render(yourContainerControl);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(filePath))
{
pngImage.Save(fileStream);
}