2017-10-11 61 views
0

imagettftext에 RTL 모드로 작성해야합니다. '인서트 아라비아 언어는 이런 식으로되어 있습니다. 문자를 되 돌리지 않으려면 RTL (방향 : rtl)과 같은 CSS를 사용합니다. 맞아 ... 내가 어떻게?imagettext 및 아랍어 : RTL 모드로 작성하려면 어떻게해야합니까?

내 용이 코드 :

require('static/I18N/Arabic.php'); 
$Arabic = new I18N_Arabic('Glyphs'); 
$font="static/ArabicModern-Light.ttf"; 
$testo=$Arabic->utf8Glyphs($testo); 
imagettftext($im, 26, 0, 560, 345, $textcolor, $font, "\"".$testo."\""); 

감사합니다! 결국 발견하고 내가 아랍어를 사용하려면이 대답을 업데이 트했습니다 Ar-PHP 4.0을 다운로드 한 후

enter image description here

답변

-1

. 아랍어를 이해할 수 없으므로 Arabic Wikipedia page에서 'العربية'텍스트를 사용했습니다.

자료 :

<?php 

require_once('./Arabic.php'); 

$iw = 300; // image width. 
$ih = 150; // image height. 

$size = 40; 
$angle = 0; 
$font = 'arial'; 
$text = 'العَرَبِيَّة'; 

$obj = new I18N_Arabic('Glyphs'); 
$text = $obj->utf8Glyphs($text); 

$box = imagettfbbox($size, $angle, $font, $text); 
$tw = abs($box[6] - $box[4]); // text width. 
$th = abs($box[7] - $box[1]); // text height. 

$im = imagecreatetruecolor($iw, $ih); 
imagefill($im, 0, 0, 0x00c0c0c0); // set a grey background. 

// left aligned. 
imagettftext($im, $size, $angle, 0, $th, 0x00000000, $font, $text); 

// centre aligned. 
imagettftext($im, $size, $angle, ($iw/2) - ($tw/2), $th * 2, 0x00000000, $font, $text); 

// right aligned. 
imagettftext($im, $size, $angle, $iw - $tw, $th * 3, 0x00000000, $font, $text); 

header('Content-Type: image/png'); 
imagepng($im); 
imagedestroy($im); 

결과 (PHP 7.1 생성) : 위키에서

enter image description here

참조 화상 :

0,123,386,


편집 : 다음 내가 (분명히 약간의 변화로 여러 줄을 처리하는) 위에 쓴 코드를 실행하여 comment에서의 text you linked에서 처음 다섯 줄의 비교입니다 :

왼쪽에 원본 이미지 (잘린 이미지), 오른쪽에 내 이미지가 생성되었습니다. 정렬되지에서 제외

enter image description hereenter image description here

정확하게 일치하는 항목입니다.

+0

아니, 내 질문에 대한 답변이 아닙니다 : 이것은 RTL CSS가 아닌 전체 텍스트의 위치입니다 ... 알다시피, 아라비아어는 깃발 오른쪽으로 작성되었습니다 – Zak

+0

나는 – Zak

+0

@ Zak 질문이 명확하지 않습니다. 당신은 명시 적으로 "나는 css와 같은 RTL을 의미합니다. 오른쪽에 정렬 플래그가 있습니다." 텍스트 정렬은 여기에 나와 있습니다. 질문을 편집하여 원하는 결과를 보여 주셔서 감사합니다. 현재 가지고있는 문제를 수정하여 편집하십시오. – timclutton