Технически вы несете ответственность за построение контекста рисования и вычисление переноса слов.Обычно, вызывая MagickQueryMultilineFontMetrics
.
Однако протокол caption:
был предоставлен как кратчайший путь.Вы можете просмотреть исходный код , чтобы увидеть, как выполнить такие вычисления, но если вам это не интересно, можно быстро взломать решение с помощью MagickSetOption
, прежде чем вызывать методы Image Read.
СC
#include <wand/MagickWand.h>
int main(int argc, const char * argv[]) {
MagickWandGenesis();
MagickWand * wand;
wand = NewMagickWand();
// -size 300x300
MagickSetSize(wand, 300, 300);
// -stroke black
MagickSetOption(wand, "stroke", "BLACK");
// -strokewidth 1
MagickSetOption(wand, "strokewidth", "1");
// -fill white
MagickSetOption(wand, "fill", "WHITE");
// -background transparent
MagickSetOption(wand, "background", "TRANSPARENT");
// -gravity center
MagickSetGravity(wand, CenterGravity);
// caption:"This is a test of the caption feature in ImageMagick"
MagickReadImage(wand, "caption:This is a test of the caption feature in ImageMagick");
// ~/out.png
MagickWriteImage(wand, "~/out.png");
wand = DestroyMagickWand(wand);
MagickWandTerminus();
return 0;
}
С wand
from wand.image import Image
from wand.api import library
with Image() as img:
# -size 300x300
library.MagickSetSize(img.wand, 300, 300)
# -stroke black
library.MagickSetOption(img.wand, b"stroke", b"BLACK")
# -strokewidth 1
library.MagickSetOption(img.wand, b"strokewidth", b"1")
# -fill white
library.MagickSetOption(img.wand, b"fill", b"WHITE")
# -background transparent
library.MagickSetOption(img.wand, b"background", b"TRANSPARENT")
# -gravity center
img.gravity = "center"
# caption:"This is a test of the caption feature in ImageMagick"
img.read(filename="caption:This is a test of the caption feature in ImageMagick")
# ~/out.png
img.save(filename="~/out.png")