使用imagemagick显示fontawesome的编码错误 [英] encoding error displaying fontawesome with imagemagick
本文介绍了使用imagemagick显示fontawesome的编码错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用fontawesome和imagemagick将它的角色显示为png,
这里是我的代码:
i'm trying to use fontawesome with imagemagick to display it's character as png ,
here is my code:
$size = '50';
$text = '';
$imgW = 200;
$imgH = 200;
$font = 'fontawesome-webfont.ttf';
$image = new Imagick();
$image->setResolution(144,144);
$draw = new ImagickDraw();
$draw->setFont($font);
$draw->setFontSize($size);
//$draw->setTextEncoding('UTF-8');
//$draw->setStrokeAntialias(true);
//$draw->setTextAntialias(true);
$image->newImage($imgW, $imgH, new ImagickPixel('none'));
$image->annotateImage($draw, 10, 45, 0, $text);
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
但图像输出看起来像这样
but the image output looks like this
任何想法如何修复这样的编码问题?
any idea how to fix such a encoding problem?
推荐答案
使用这个答案以确保我有一个UTF-8字符串被传递到ImageMagick为我工作。代码中唯一的变化是第二行:
Using the example from this answer to ensure I had a UTF-8 string being passed into ImageMagick works for me. The only change from your code is the second line:
$size = '50';
$text = html_entity_decode("", ENT_COMPAT, 'UTF-8');
$imgW = 200;
$imgH = 200;
$font = 'fontawesome-webfont.ttf';
$image = new Imagick();
$image->setResolution(144,144);
$draw = new ImagickDraw();
$draw->setFont($font);
$draw->setFontSize($size);
//$draw->setTextEncoding('UTF-8');
//$draw->setStrokeAntialias(true);
//$draw->setTextAntialias(true);
$image->newImage($imgW, $imgH, new ImagickPixel('none'));
$image->annotateImage($draw, 10, 45, 0, $text);
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
这篇关于使用imagemagick显示fontawesome的编码错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文