我想显示由两个图像组成的图像。
我希望图片 rectangle.png 在顶部上显示图片 sticker.png ,其左手< / strong>像素10,10处的角落。
据我所知,如何合并图像?
Image image = new Image();
image.Source = new BitmapImage(new Uri(@"c:\test\rectangle.png"));
image.Stretch = Stretch.None;
image.HorizontalAlignment = HorizontalAlignment.Left;
Image imageSticker = new Image();
imageSticker.Source = new BitmapImage(new Uri(@"c:\test\sticker.png"));
image.OverlayImage(imageSticker, 10, 10); //how to do this?
TheContent.Content = image;
答案 0 :(得分:12)
您需要一个Panel才能将两个Image控件添加到。 Grid或Canvas将允许这样做,但我会使用Grid,因为它会约束Image控件(从而适当地拉伸或缩小它们)。
Image image = new Image();
image.Source = new BitmapImage(new Uri(@"c:\test\rectangle.png"));
image.Stretch = Stretch.None;
image.HorizontalAlignment = HorizontalAlignment.Left;
Image imageSticker = new Image();
imageSticker.Source = new BitmapImage(new Uri(@"c:\test\sticker.png"));
imageStiker.Margin = new Thickness(10, 10, 0, 0);
Grid grid = new Grid();
grid.Children.Add(image);
grid.Children.Add(imageSticker);
TheContent.Content = grid;
答案 1 :(得分:2)
您可以将一个Image控件放在View中另一个Image控件的顶部。将两者放入网格或画布中,然后将其中一个图像叠加在另一个上面。这也允许你使用不透明度进行混合,并且效果非常好。
如果您需要将它们放入相同的图像中,有几个选项....
您可以从第一张图片中制作WritableBitmap,然后手动“绘制”第一张图像顶部的其他图像像素。然后,它可以作为显示器中图像的图像源。
或者,您可以执行我上面提到的叠加层,并将其渲染为RenderTargetBitmap。然后可以将其用作图像源。