使用Magick ++

时间:2015-07-01 02:14:14

标签: c++ imagemagick magick++

我尝试使用Magick ++在文本下添加红色背景。我的简单代码是:

Magick::Image img( Geometry(800,200), Color("white") );

img.strokeWidth(12);
img.font("Helvetica");
img.fontPointsize(font_size);

img.draw(Magick::DrawableTextUnderColor(Magick::Color("red")));
img.draw(Magick::DrawableText(25, 25,  "Some text") );

img.write("file.png");

它打印文本确定,但文本没有红色背景。目前的结果是:

enter image description here

但是,我希望有背景的文字,像这样(背景照片购买的例子)

enter image description here

2 个答案:

答案 0 :(得分:2)

这应该有效。不是一个一个地绘制东西,而是制作一个Drawable项目列表,而不是一次绘制所有内容:

list<Magick::Drawable> to_draw;

to_draw.push_back(Magick::DrawableText(25, 25,  "Some text"));
to_draw.push_back(Magick::DrawableTextUnderColor("red"));

img.draw(to_draw);

答案 1 :(得分:2)

  • 以下是您的问题的解决方案,

    Image img(Geometry(800, 800), Color("white"));
    img.font("Helvetica");
    img.fillColor(Color("firebrick"));
    img.strokeColor(Color("red"));
    img.draw(Magick::DrawableText(25, 25,  "Some text") );
    img.write("text.png");