Как я могу наложить одно изображение на другое?


Я хотел бы отобразить изображение, состоящее из двух изображений.

Мне нужно Изображение прямоугольника.png , чтобы показать с изображением наклейка.png на верхней ее части с ее левым углом в пикселе 10, 10.

Вот как далеко я зашел, но как я могу комбинировать изображения?

Image image = new Image();
image.Source = new BitmapImage(new Uri(@"c:testrectangle.png"));
image.Stretch = Stretch.None;
image.HorizontalAlignment = HorizontalAlignment.Left;

Image imageSticker = new Image();
imageSticker.Source = new BitmapImage(new Uri(@"c:teststicker.png"));

image.OverlayImage(imageSticker, 10, 10); //how to do this?

TheContent.Content = image;
2 9

2 ответа:

Вам нужна панель для добавления обоих элементов управления изображением. Сетка или холст позволят это, но я бы пошел с сеткой, поскольку она будет ограничивать элементы управления изображением (таким образом, растягивая или сжимая их по мере необходимости).

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;

Вы можете просто поместить один элемент управления изображением поверх другого элемента управления изображением в вашем представлении. Поместите оба изображения в сетку или холст и просто наложите одно изображение поверх другого. Это также позволяет использовать непрозрачность для смешивания и работает очень хорошо.

Если вам нужно поместить их в один образ, есть несколько вариантов....

Вы можете сделать WritableBitmap из первого изображения, а затем вручную "нарисовать" другие пиксели изображения поверх первого. Затем он может выступать в качестве источника изображения для вашего изображения на дисплее.

В качестве альтернативы, вы можете сделать наложение, о котором я упоминал выше, и визуализировать это в RenderTargetBitmap. Это может быть использовано в качестве источника изображения.