Image Magick慢画

时间:2017-07-28 01:22:54

标签: c++ imagemagick

我正在尝试使用Image Magick库(Magick ++ API)在图像上绘制一堆线条,总执行时间似乎相当大。

有没有办法优化IMagick绘图性能?

int SIZE = 700, LINES_NUM = 6000;

Image outputImage(Geometry(SIZE, SIZE), Color("white"));

for (int i = 0; i < LINES_NUM; i++) {
    outputImage.draw(DrawableLine(lines[i].x1,lines[i].y1,
                                  lines[i].x2,lines[i].y2));
}

1 个答案:

答案 0 :(得分:0)

尽量避免重复Magick::Image.draw次来电。

std::vector<Magick::Drawable> drawList;
for (int i = 0; i < LINES_NUM; i++) {
    drawList.push_back(DrawableLine(lines[i].x1,lines[i].y1,
                                    lines[i].x2,lines[i].y2));
}
outputImage.draw(drawList);

还要确保已使用OpenMP支持编译ImageMagick库。如果你想要速度而不是质量,我建议在没有高动态范围图像--enable-hdri=no和低量子深度--with-quantum-depth=8的情况下重新编译。