Приложение Магазина Windows — WriteableBitmap , метод blit

Хорошо, я пытаюсь объединить два изображения (наложить одно изображение поверх другого), используя метод blit из библиотеки writeablebitmapex. И после применения блика все, что я получаю, это прозрачное изображение без содержимого.

Я хотел бы наложить изображение занавески поверх изображения окна.

Исходный код:

WriteableBitmap photoWriteableBitMap = await new WriteableBitmap(1,1).FromContent(new Uri("ms-appx:///Curtain1.jpg"));
WriteableBitmap frameWriteableBitMap = await new WriteableBitmap(1, 1).FromContent(new Uri("ms-appx:///Window1.jpg"));

var merge = new WriteableBitmap(750, 750);

merge.Blit(new Rect(0, 0, 100, 100), photoWriteableBitMap, new Rect(0, 0, photoWriteableBitMap.PixelWidth, photoWriteableBitMap.PixelHeight));
merge.Blit(new Rect(0, 0, 200, 200), frameWriteableBitMap, new Rect(0, 0, frameWriteableBitMap.PixelWidth, frameWriteableBitMap.PixelHeight));

// Assign the merged writeable bitmap to the image source.
imgMain.Source = merge; 

Ожидаемое изображение: Ожидаемое изображение

Реальное изображение: Фактическое изображение

Пожалуйста, дайте мне знать, что я делаю неправильно.


person Mohammed Aamir K    schedule 10.02.2016    source источник


Ответы (1)


Я нашел ответ на свое решение, если кто-то наткнется здесь.

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

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

Ниже приведен окончательный код, который работает для меня,

WriteableBitmap photoWriteableBitMap = await new WriteableBitmap(1, 1).FromContent(new Uri("ms-appx:///Curtain1.jpg"));
WriteableBitmap frameWriteableBitMap = await new WriteableBitmap(1, 1).FromContent(new Uri("ms-appx:///Window1.jpg"));

frameWriteableBitMap.Blit(new Rect(300, 100, 250, 200), photoWriteableBitMap, new Rect(0, 0, photoWriteableBitMap.PixelWidth , photoWriteableBitMap.PixelHeight));

Вот как выглядит мое окончательное изображение: введите здесь описание изображения

person Mohammed Aamir K    schedule 10.02.2016