direct2d相关内容

如何将 ID2D1Bitmap 保存为 PNG 文件

我在尝试将 ID2D1Bitmap(从 ID2D1HwndRenderTarget 创建的)保存到 PNG 文件时遇到问题.输出图像只是空白的白色.从函数调用 EndDraw() 返回的 HRESULT 为 -2003238894. 感谢您的帮助. 这是我的代码: HRESULT CImageUtil::SaveBitmapToFile(PCWSTR uri,ID2D1Bitmap* ..
发布时间:2022-01-24 18:18:17 其他开发

使用 Direct2D 的大图像

目前我正在为 Windows Store 开发应用程序,该应用程序使用 Direct2D 进行实时图像处理.它必须支持各种尺寸的图像.我遇到的第一个问题是如何处理图像大于支持的最大纹理大小的情况.经过一些研究和文档阅读后,我发现 VirtualSurfaceImageSource 作为解决方案.想法是将图像加载为 IWICBitmap,然后使用 CreateWICBitmapRenderTarge ..

ID2D1HwndRenderTarget 总是有黑色背景而不是透明

我正在尝试创建一个简单的透明窗口,我可以在其中使用 Direct2D 进行绘图. 到目前为止我做了什么: 创建的窗口 将样式设置为 WS_EX_LAYERED 将 alpha 颜色键设置为 #FFF 使用 Windows 图形绘制一个白色矩形 现在窗口是透明的,具有每个像素的 Alpha 值 然后在窗口外制作一个目标并使用 Direct2D 进行绘制 制作 ALPHA _P ..
发布时间:2022-01-12 14:55:47 C/C++开发

WIC 位图处理最有效的像素格式是什么?

我正在尝试使用 Direct2D 和 WIC 位图制作一个简单的视频播放器,例如程序. 它需要对 YUV 像素格式的帧数据进行快速且 CPU 经济的绘制(带拉伸). 我已经用 GDI 测试过了.我希望切换到 Direct2D 至少能带来 10 倍的性能提升(更小的 CPU 开销). 我要做的基本上如下: 创建一个空的 WIC 位图 A(用于画布) 用YUV帧数据创建另一个WI ..
发布时间:2021-09-26 19:14:44 其他开发

如何在SharpDX中使用文件中的字体?

我想为 Windows 8 应用程序生成图像,我将使用 SharpDX API 这是我幸运地处理并粘贴的代码示例 private MemoryStream RenderStaticTextToBitmap(){无功宽度= 400;变量高度 = 100;var pixelFormat = WicPixelFormat.Format32bppBGR;var wicFactory = new I ..
发布时间:2021-09-26 18:52:44 C#/.NET

每次调整窗口大小时内存都会增加

我创建了一个简单的 Win32 应用程序并尝试用颜色填充客户区.当包含“Clear RenderTarget"这一行时,我看到每次调整窗口大小时内存都会增加几 KB. 我的 WindowProc: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){开关 (uMsg){案例 WM_S ..
发布时间:2021-09-25 19:24:53 其他开发

使用 Direct2D 在非客户区绘图

在此页面上:https://docs.microsoft.com/en-us/windows/win32/gdi/wm-ncpaint 解释了如何使用 GDI 在非客户区绘图. 如何在不处理 GDI 或 GDI+ 的情况下使用 Direct2D 在窗口的非客户区中绘图? 解决方案 首先,WM_NCPAINT 是旧的.使用它将禁用窗口的 DWM 主题,提供 Windows 经典/7 基 ..
发布时间:2021-09-25 18:56:48 C/C++开发

Direct2D:将 ID2D1Image 转换为 ID2D1Bitmap

我正在开发一个需要修改屏幕上已有内容的程序.所以我只有一个 ID2D1Bitmap 是我使用 pRenderTarget->CopyFromRenderTarget 创建的. 我想要做的是,将效果应用于该位图.效果只返回ID2D1Image,但我需要有一个ID2D1Bitmap. 有没有办法做到这一点? 编辑 1: ID2D1Bitmap* myBitmap//我想应用效果的位 ..
发布时间:2021-09-18 19:15:08 C/C++开发

通过 RDP 使用 WPF 的 Direct2d

我正在开发一个 C# 应用程序,它使用 SharpDx 通过 Direct2d 呈现地图.该地图与 WPF 主机上的 D3DImage 一起显示.在本地机器上一切正常,但是当我尝试通过远程桌面连接时,D3DImage 丢失了其后台缓冲区,并且无法使用 WPF 显示渲染图像. 我在绑定 Backbuffer 时尝试启用软件回退.结果是应用程序设法渲染一张图像,然后再次丢失后台缓冲区.我还尝试使 ..
发布时间:2021-07-03 19:02:49 C#/.NET

强制Win32通用控件使用"ID2D1HwndRenderTarget"?

我使用 ID2D1HwndRenderTarget 绘制了大部分UI,但是我想要一些经典的窗口控件: button , edit .如何 ID2D1HwndRenderTarget * canvas = nullptr;//它是全局对象HWND按钮= nullptr;//它是全局对象HWND编辑= nullptr;//它是全局对象HWND custom = nullptr;//它是全局对象 ..
发布时间:2021-05-10 18:38:55 其他开发

带有梯度的神秘Direct2D内存泄漏

我有一个基于SharpDX的C#应用​​程序.在某些情况下,允许用户编辑线性渐变,但是由于我没有找到修改 ID2D1GradientStopCollection (又称为 SharpDX.Direct2D1.GradientStopCollection )的方法,我只是在为用户调整渐变光阑的偏移量的每一帧设置并重新创建渐变. 但是,我注意到,如果我将渐变停止调整了足够的次数(即,在每秒重新创 ..
发布时间:2021-04-30 20:24:40 C#/.NET

Direct2D:WM_RESIZE开关案例中的未处理异常

我正在创建 一旦我开始调试程序,它就会给出异常.我什至从站点逐字复制了程序.由于我是DirectX领域的新手,所以我对异常一无所知.我该怎么办? 解决方案 我已经编译了该示例.它可以在32位版本中使用,而在64位版本中会崩溃. 该错误出现在Microsoft的示例代码中,与Direct2D无关. 它们将 this 传递给 SetWindowLongPtr ,并与 PtrT ..
发布时间:2021-04-19 20:02:09 C/C++开发

如何在C ++中将内存中加载的图像文件转换为ID2D1Bitmap

我正在尝试将刚从压缩文件提取到内存中的图像文件(png,但是可以是任何东西)转换为ID2D1Bitmap,以使用Direct 2D进行绘制.我试图寻找一些文档,但是我只能找到接收"const char * path"或询问我图像宽度和高度的方法,这些是我事先不知道的.在Google上搜索它无处可寻. 文件是内存中的原始文件,我想避免将图像提取到HDD到一个临时文件中,只是为了从那里读取它们的 ..
发布时间:2021-04-19 19:47:29 C/C++开发

如何从旧版.NET Framework的托管代码将Direct2D渲染器初始化为GDI上下文

在 .NET Framework 3.5 上运行的 Windows窗体中,使用旧版桌面应用程序托管代码(由 C#和VB 项目组成) (由于超出此问题范围的原因,无法将其迁移到较新的.NET), 如何将代码从GDI +过渡到 Direct2D ?还是可能要使用Direct3D? 另一个限制是,最终的应用程序可以在 Windows 7 上运行,但是,如果这是使它运行的唯一方法,我们将迁移到Win ..
发布时间:2020-11-13 02:35:29 其他开发

用PInvoked GDI和透明PNG替换GDI + DrawImage

我已经在C#中创建了一个图像服务,该服务获取一个基本图层图像(JPG),再层叠一个更透明的PNG(32位),然后输出最终的JPG图像.我试图从此函数中每隔一毫秒压缩一次,而我的代码在GDI +中的DrawImage调用上遇到了瓶颈.托管代码在这里: // Load base image and create graphics Image image = LoadImage(renderSet ..
发布时间:2020-11-13 02:24:06 其他开发