libjpeg-turbo可以设置像素的颜色吗?

时间:2015-06-06 22:31:41

标签: c++ optimization imagemagick jpeg magick++

我使用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循环的其他方面的建议。

0 个答案:

没有答案