Windows 应用商店 - WriteableBitmap , blit 方法
Windows Store App - WriteableBitmap , blit method
好的,我正在尝试使用 writeablebitmapex 库的 blit 方法合并两个图像(将一个图像叠加在另一个图像之上)。在应用 blit 之后,我得到的只是一个没有内容的透明图像。
我想在 window 图片上叠加窗帘图片。
源代码:
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;
预期图像:
实际图像:
请让我知道我做错了什么。
我已经找到了我的解决方案的答案,以防有人偶然发现这里。
首先,我不必要地尝试为所需的输出包含一个额外的位图(合并)。
我所要做的就是在 window 图像上应用 blit 并适当地设置源和目标矩形。
下面是适合我的最终代码,
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));
这是我的最终图像的样子:
好的,我正在尝试使用 writeablebitmapex 库的 blit 方法合并两个图像(将一个图像叠加在另一个图像之上)。在应用 blit 之后,我得到的只是一个没有内容的透明图像。
我想在 window 图片上叠加窗帘图片。
源代码:
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;
预期图像:
实际图像:
请让我知道我做错了什么。
我已经找到了我的解决方案的答案,以防有人偶然发现这里。
首先,我不必要地尝试为所需的输出包含一个额外的位图(合并)。
我所要做的就是在 window 图像上应用 blit 并适当地设置源和目标矩形。
下面是适合我的最终代码,
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));
这是我的最终图像的样子: