我使用TIC将文字转换为图片。
我已经对此进行了大量搜索,但它似乎是Unicode问题(初始内侧和最终字母的unicodes)或者可能是内容类型,因为图像是在PNG中。
如果我在没有使用content type text/html
和charset=UTF-8
进行图片转换的情况下进行回音,我会通过加入Urdu字母获得所需的输出。
require_once 'lib/tic.php';
$text="زہرہ نور ";
TIC::factory('C:\Windows\Fonts\Nastalique.ttf')
->setText($text)
->setPadding(10)
->setBgColor('ff0000')
->setFontColor(0xff, 0xff, 0x00)
->setFontSize(24)->create(true);
退出
ز ہ ر ہ ن و ر
答案 0 :(得分:4)
你可以这样做:
$text = "زہرہ نور";
// Make it RTL
preg_match_all('/([^\d]|\d+)/us', $text, $ar);
$text = join('',array_reverse($ar[0]));
// Set font
$font = 'C:\Windows\Fonts\Nastalique.ttf';
// Create the image
$im = imagecreatetruecolor(160, 160);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// Create some colors
imagefilledrectangle($im, 0, 0, 159, 159, $white);
// Set the headers
header('Content-type: image/gif');
// Add the text
imagettftext($im, 12, 0, 20, 20, $black, $font, $text);
imagegif($im);
imagedestroy($im);
如果不适合您,您可以选择使用php-gd-farsi。
如何使用
只需将库复制到PHP目录即可。用法很简单:
include('php-gd-farsi-master/FarsiGD.php');
$gd = new FarsiGD();
....
// then convert your text:
$tx = $gd->persianText($str, 'fa', 'normal');
完整代码
include('php-gd-farsi-master/FarsiGD.php');
$gd = new FarsiGD();
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);
// Path to our ttf font file
$font_file = './Nastalique.ttf';
// Draw the text 'PHP Manual' using font size 13
$text = imagecreatetruecolor(200, 60);
imagefilledrectangle($text, 0, 0, 200, 60, $red);
$str = 'زہرہ نور';
$tx = $gd->persianText($str, 'fa', 'normal');
imagefttext($text, 24, 10, 10, 50, $black, $font_file,$tx );
$im = $text;
// Output image to the browser
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
答案 1 :(得分:1)
您可以使用HTML2CANVAS js库将HTML转换为Canvas,然后将canvas转换为Image。
我写了一篇关于 How to convert HTML to IMAGE in jQuery 的详细文章。
希望你觉得它很有用。