gpt4 book ai didi

c# - Windows 应用商店应用程序 - WriteableBitmap,blit 方法

转载 作者:行者123 更新时间:2023-11-30 23:29:38 25 4
gpt4 key购买 nike

好的,我正在尝试使用 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;

预期图像:Expected image

实际图片:Actual image

请让我知道我做错了什么。

最佳答案

我已经找到了我的解决方案的答案,以防有人在这里偶然发现。

首先,我不必要地尝试为所需的输出包含一个额外的位图(合并)。

我所要做的就是在窗口图像上应用 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));

这是我最终图像的样子:enter image description here

关于c# - Windows 应用商店应用程序 - WriteableBitmap,blit 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com