0
  perl -e 'binmode(STDOUT, ":utf8"); \
    print "\x{201C}Unicode \x{2018}\x{263A}\x{2019} Please\x{201D}";' |\
      convert -background lightblue -fill blue -pointsize 36 \
              label:@-  label_unifun.gif

PHPで同じ結果を得るために、ImageMagickのドキュメントに従おうとしています。しかし、これまでのところ結果はありません。これは私が持っているものです:

$draw = new ImagickDraw();
$draw->setTextEncoding('UTF-8');
$draw->setFontSize(52);

$draw->setFont("font.otf");
$draw->setStrokeAntialias(TRUE);
$draw->setTextAntialias(TRUE);
$draw->annotation(20, 50, "\x{201C}Unicode \x{2018}\x{263A}\x{2019} Please\x{201D}");

$canvas = new Imagick();
$canvas->newImage(1000, 500, "red");
$canvas->drawImage($draw);
$canvas->setImageFormat('png');

header("Content-Type: image/png");
echo $canvas;

しかし、それは単に印刷し\x{201C}Unicode \x{2018}\x{263A}\x{2019} Please\x{201D}ます。

4

2 に答える 2

0

PHP は、ImageMagick に渡すときにエスケープを行います。エスケープされていない Unicode 文字を文字列に挿入するだけです。

$draw->annotation(20, 50, "ééèeèeèaèèèààaàaàaààêêêçcçcçc");
于 2011-03-16T03:28:05.777 に答える
0

コマンド ライン ツールを使用し、UNICODE 文字をサポートするために file_put_contents() を使用して作成された中間ファイルからキャプション/ラベルを受け入れます。

file_put_contents($textFilename, $text);

$cmd = "convert -size ".WIDTH."x".HEIGHT."  -background ".BACKGROUND_COLOR_TTI." -fill ".TEXT_COLOR_TTI." -pointsize ".FONT_SIZE_TTI." -gravity     center    caption:@".$textFilename." ".$newFileName;
于 2012-03-28T07:37:26.173 に答える