visual-c++ - 将图像直接保存到 _variant_t
问题描述
我需要将 GDI+ 位图图像字节存储到_variant_t
. 我可以将图像保存到IStream
(由 创建SHCreateMemStream
),然后我可以将流的内容复制到使用创建的缓冲区中SafeArrayCreate(VT_UI1,...)
。但这意味着在某些时候我将在内存中两次拥有相同的字节数组。它有效,但我想知道是否有一些简单的方法可以在内存中只有一个缓冲区。也许有一些我不知道的“SafeArrayStream”可以用来代替内存流(我当然不想自己做一个)。或者也许有一种方法可以在调用之前确定所需的缓冲区大小Image::Save
。
我创建的_variant_t
然后由第三方库使用。它可能会制作缓冲区的第三份副本,但我无法控制它。
解决方案
推荐阅读
- c# - 为什么我不能从 catch 块调用方法?
- wpf - 如何在 WPF 中为 doubleClick 绑定到祖先类型属性
- electron - 错误:错误:不支持的提供者:电子 js 中未定义
- c# - C# Word vsto Add in 仅获取可见屏幕的文本
- javascript - Javascript在MVC视图中使用for循环创建动态数组
- hyperledger - 带有超级账本 indy 的公证文件
- javascript - 用js给body元素overflow-y后有什么方法可以防止内容跳转?
- visual-studio-code - VS Code jsconfig 高级别名全局路径
- sql-server - ODBC 转义语法 SQL Server 2016
- c# - 尝试读取文件时 Azure 托管应用程序出现 403 错误