gpt4 book ai didi

android - 通用窗口绘制图形并即时保存图像

转载 作者:行者123 更新时间:2023-11-28 02:19:34 25 4
gpt4 key购买 nike

我正在用 C++ 开发一个通用的 Windows 10 应用程序,要求是这样的——有一个三角形/矩形/等的规范。例如坐标、边框宽度、边框颜色等。现在,我需要创建一个图像,以便可以在其上绘制指定的三角形,然后将图像保存到一个临时位置。

我已经尝试过第 3 方库,例如 ImageMagick ,但无法使用它,因为首先我正在开发一个通用应用程序,因此它需要跨平台,其次,它的库太大而无法放入该应用程序。

我也看了Win2D , 但它还需要在 UI 上放置一个 Canvas 元素。另外,在那里绘图需要在 Draw 事件处理程序中完成,但我想即时执行,例如 Image2D getTriangle(double x1, double y1, double x2, double y2, double x3, double y3, Color color )

  1. 我研究了 Android 应用程序开发,他们有一个名为“android.graphics.Paint”的东西可以使用。通用 Windows SDK 中有我可以利用的东西吗?

  2. 我真的不想创建 XAML 元素。原因 - 它需要在我使用它之前加载到 UI 上(从技术上讲,需要进行“布局传递”)并且我不想在屏幕上显示它 - 只需将图像保存在磁盘上。

  3. 与通用 Windows 一样,它应该能够在通用 Windows 支持的所有平台上运行,例如 Windows Phone、Surface、PC 等。

最佳答案

我终于找到了我的问题的解决方案,希望它能指导其他在这里跌跌撞撞的人。用于在通用 Windows 应用程序中动态创建图像的库仍然是 Win2D。但是当 Direct2D 在屏幕上写入图像时,有一个 offscreen drawing library在 Win2D 中有助于将图像绘制到文件中。本质上,我们使用 CanvasRenderTarget 创建渲染目标并使用 CanvasDrawingSession 绘制。完成后,我们使用 SaveAsync 将图像保存到磁盘。

Win2D 也可以作为 nuGet 包使用,因为它是一个带有维护的 .uwp 包的微软项目,它似乎可以在通用 Windows 目标的所有平台上运行。

示例代码-

CanvasDevice^ device = CanvasDevice::GetSharedDevice();
CanvasRenderTarget^ offscreen = ref new CanvasRenderTarget(device, width, height, 96);
{
CanvasDrawingSession^ ds = offscreen->CreateDrawingSession();
ds->Clear(Colors::Black);
ds->DrawRoundedRectangle(Rect (0, 0, 100, 100), 0, 0, Colors::White);
}
offscreen->SaveAsync(filepath)

关于android - 通用窗口绘制图形并即时保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014278/

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