我正在使用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();
但是在这里,我无法将我的数据转换为const char*
缓冲区而不会丢失任何内容。
Blob
相关的操作却没有成功? - Sander De Dyckerconst char*
?这是一个你想要通过网络发送的缓冲区。无论它是void *
还是char *
,你只需要一个指向缓冲区开头的指针和缓冲区的大小即可。 - Matthieu Rouget