magick++显示图像与CGI

Magick++ to display an image with CGI

本文关键字:CGI 图像 显示图 显示 magick++      更新时间:2023-10-16

我最近开始使用magick++ (ImageMagick的c++ API),目的是创建一个可以显示随机生成图像的网站。我试图写一个CGI脚本,它将创建一个JPEG图像,设置其像素的颜色,然后返回图像信息为Content-type: image/jpg

通读文档,我只找到用于将映像文件写入磁盘的函数。我没有看到一个会做我希望做的事情,沿着std::cout << Imagestd::cout << Blob

我的目标是能够在网页中显示由脚本生成的图像,而无需将图像写入磁盘。

我知道PerlMagick有一个显示函数,它可以做我想做的事情-我想知道我是否可以用magick++做同样的事情。

我想你正在寻找blobs - 二进制大对象。基本上,您将创建一个类型为Image的映像和一个类型为Blob的blob。您可以通过从文件中读取或生成随机数据来填充图像,然后将图像写入blob(对其进行编码),然后将其写入用户的浏览器。

请原谅我无用的C/c++技能…

Image  image;
Blob   blob;
// set type to JPEG
image.magick("JPEG");   
// generate/read/fill image here
image.read("image.jpg");
// encode image as JPEG
image.write(&blob);   
// now send MIME type to browser
std::cout << "Content-type: image/jpeg" << CRLF;
// ... followed by blob
write(1,(char*)blob.data(),blob.length());