0

我使用 Magick++ 编写了一个程序,它生成一个 JPEG 文件,其中每个像素设置为随机颜色。它运作良好,但对于我的目的来说有点慢。

我读过 libjpeg-turbo 更快 - 但是通过阅读它的文档,我只能找到从现有图像文件中读取并压缩的函数和示例。是否可以使用 libjpeg-turbo 以编程方式设置 jpeg 的像素值?

有没有其他方法可以尝试更快地创建图像?如果其中一种可以允许更快的算法,我愿意尝试不同的文件类型。我的最终目标是创建一个 CGI 程序,它将在网页上显示随机生成的图像。

这是我在 Magick++ 中使用的代码:

Image babel( Geometry(640, 416), Color(MaxRGB, MaxRGB, MaxRGB, 0));
babel.magick("JPEG");

boost::multiprecision::mpz_int color;
for (unsigned x=0;x<798720;x++) {
color = *pointer % 16;
if (color<10) {where += ('0'+color.convert_to<int>());}
else {where += ('7' + color.convert_to<int>());}
if (x%3==2) {babel.pixelColor((x%1920)/3,x/1920,Color(where)); where="#";}
*pointer = *pointer >> 4;
}
babel.write("rando.jpg");

- - 更新 - - -

正如下面所指出的,Magick++ 不会导致该程序运行缓慢。我欢迎任何有关优化此 for 循环其他方面的建议。

4

0 回答 0