2015-06-06 8 views
12

Io uso TIC per convertire il testo in immagini.Come unire gli alfabeti Urdu durante la conversione di testo in immagine in PHP

Ho cercato molto su questo, ma sembra un problema Unicode (unicodi di lettere iniziali e mediali iniziali) o può essere il tipo di contenuto come immagine è in PNG.

Se echo senza conversione di immagini con content type text/html e charset=UTF-8 Ottengo l'output desiderato con l'aggiunta di lettere in 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); 

uscire mettere come

ز ہ ر ہ ن و ر 
+0

Zehra, sei riuscito a trovare la risposta a questo problema? Gentilmente condividi la soluzione se ne hai. – Aqueel

+0

@Aqueel Non esitate a controllare la risposta. – Trix

risposta

4

Si può fare in questo modo:

$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); 

Se non ha funzionato per voi, si ha la possibilità di utilizzare php-gd-farsi.

Come utilizzare

basta copiare la libreria nella directory PHP. L'utilizzo è semplice:

include('php-gd-farsi-master/FarsiGD.php'); 
$gd = new FarsiGD(); 

.... 
// then convert your text: 
$tx = $gd->persianText($str, 'fa', 'normal'); 

completo del codice

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); 
+0

Non ha funzionato Trix. Puoi condividere il tuo output con questo codice? – Aqueel

Problemi correlati