【发布时间】:2013-06-11 02:26:55
【问题描述】:
我正在使用 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* 缓冲区而没有任何损失。
【问题讨论】:
-
你用
Blob做了什么没用? -
为什么要转换成
const char*?它是您要通过网络发送的缓冲区。不管是void *还是char *。你只需要一个指向缓冲区开头的指针,以及这个缓冲区的大小。
标签: c++ image image-processing imagemagick