我尝试在图片上添加文字:
$newImg = imagecreatetruecolor($dst_width, $dst_height);
imagealphablending($newImg, false);
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $dst_width, $dst_height, $width, $height);
imagesavealpha($newImg, true);
if(!empty($name)){
$fontSrc = './fonts/DejaVuSans.ttf';//support utf8 and unicode
$font = imageloadfont($fontSrc);
//Couleur des noms
$bg = imagecolorallocatealpha($newImg, 0, 0, 0, 0);
$textcolor = imagecolorallocatealpha($newImg, 255, 255, 255, 1);
//Deplacer les noms
imagestring($newImg, $font, 0, $dst_height - 17, 'שדגשדג', $textcolor);
}
已经尝试过:
header('Content-Type: text/html; charset=utf-8');
imagestring($newImg, 500, 0, $dst_height - 17, utf8_encode('שדגשדגש'), $textcolor);
问题是当我把文本放入希伯来语(utf8)时:שדגשד
它显示图片上的文字:
正如你可以看到它的类型垃圾文本,修复它的正确方法是什么?
答案 0 :(得分:1)
好的,经过深入的研究和大量的测试后我终于实现了它,现在可以使用utf8字符,问题是图像字符串无法使用utf8 ,我应该更改为imagettftext并加载支持utf8支持的ttf字体:
putenv('GDFONTPATH=' . realpath('.'));
$fontGD = './fonts/DejaVuSans';
imagettftext($newImg, 20, 0, 10, 20, $black, $fontGD, 'שגשדג');
多数民众赞成,现在正在运作。