Ama*_*man 4 c++ image imagemagick image-processing
我正在使用 ImageMagick 库进行图像处理。我需要加载一个“bmp”图像,将其转换为 jpeg,将其加载到缓冲区中并通过网络发送。
但是,我在 ImageMagick 中找不到任何可以在缓冲区中转换和存储数据的支持函数。我只能写入文件。尝试使用Magick::Blob但仍然没有用。
以下代码用于加载、转换和写入文件:
Magick::Image img("Sample.bmp");
img.magick("jpeg");
img.write("Output.jpeg");
Run Code Online (Sandbox Code Playgroud)
编辑:
使用 Magick::Blob 作为:
Magick::Blob myBlob;
img.write(&myBlob);
const void *myData = myBlob.data();
Run Code Online (Sandbox Code Playgroud)
但是在这里我无法将 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());
Run Code Online (Sandbox Code Playgroud)
随着void sendJpegImage(void* data, size_t length)为您的数据发送功能。