gpt4 book ai didi

c++ - 如何使用 C++ 将 wxImage 存储到数据库中?

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

我有一些 wxImages,我想将它们存储到 BLOB 中MySQL 数据库中的(二进制大对象)字段。

wxImage 中没有方法也不wxBitmap用于获取二进制数据作为 unsigned char 数组,以便我可以加载到数据库中。

我目前的解决方法是将图像写入一个临时文件,然后直接从该文件加载 BLOB 字段。

是否有更有效的方法来将 wxImage 对象加载和存储到 MySQL BLOB 字段中?

我正在使用 MySql C++ 连接器 1.05,MS Visual Studio 2008,wxWidgets和 C++。

最佳答案

wxWidgets 不为来自 wxBitmap 的数据提供任何 API(因为它是平台相关的)但是 wxImage 使用定义明确(并且非常简单)的格式您可以使用上面提到的 GetData() 方法进行访问。请注意,如果您的图像具有 Alpha channel ,您可能还需要使用 GetAlpha()

但是我不会这样做,因为如果您这样做,数据将巨大。虽然压缩它,正如上面所建议的那样,是可能的,但当 wxImage 已经支持以任何标准图像格式写入图像时,为什么还要手动进行压缩呢。只需创建一个 wxMemoryOutputStream 并将其传递给 SaveFile()。然后使用 GetOutputStreamBuffer()->GetBufferStart() 和相关函数直接访问流缓冲区。

关于c++ - 如何使用 C++ 将 wxImage 存储到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548130/

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