c++ - 如何在 C++ 中从 Imagemagick 图像获取缓冲区

标签 c++ image image-processing imagemagick

我正在使用 ImageMagick 库进行图像处理。我需要加载“bmp”图像,将其转换为 jpeg,将其加载到缓冲区中并通过网络发送。

但是,我无法在 ImageMagick 中找到任何可以在缓冲区中转换和存储数据的支持函数。我只能写入文件。尝试使用 Magick::Blob 但仍然没有用。

以下代码用于加载、转换和写入文件:

Magick::Image img("Sample.bmp");
img.magick("jpeg");
img.write("Output.jpeg");

编辑:

使用 Magick::Blob 作为:

Magick::Blob myBlob;
img.write(&myBlob);
const void *myData = myBlob.data();

但在这里我无法将 myData 转换为 const char* 缓冲区而不会有任何损失。

最佳答案

你试过吗:

Magick::Image img("Sample.bmp");

Blob blob; 
img.magick("JPEG");
img.write(&blob);

// Then access blob's data with  blob.data()
sendJpegImage(blob.data(), blob.length());

使用 void sendJpegImage(void* data, size_t length) 作为您的数据发送函数。

关于c++ - 如何在 C++ 中从 Imagemagick 图像获取缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108472/

相关文章:

iPhone:删除所需的缩略图以自定义完整的图像

jquery - 悬停到纯色背景?

python - 为 LabVIEW 在 Python 中返回图像的问题

c++ - 麦片序列化错误

c++ - 函数的 va_arg 参数存储在堆栈内存还是堆内存中?

c++ - Qt QCursor::setPos() 什么都不做

菜单中的 C++ 循环

image - 在 MATLAB 中围绕其中心旋转图像矩阵

python - 在 Python 中暂停和重新启动视频

python - 查找框和裁剪图像的角点