2015-04-15 2 views
2

ourdou problèmes de policeComment convertir le texte UTF-8 URDU à l'image à la volée Php? Je

de modifier les polices, le navigateur Web sur mon patch, dans le navigateur pour faire votre image page quatrième.

J'ai essayé un certain nombre de didacticiels/exemples et recherches. Je ne pouvais pas trouver une solution.

  • A Astuce: (Je espère que ça fera quelqu'un de la vie plus facile.)

Un gros problème, je résolus dans la création d'image a été l'utilisation de Windows Share-Point pour enregistrer mes fichiers .php. Tous les fichiers que je gardais, avait quelque chose BOM UTF.

Quand je sauvé même fichier en utilisant le Bloc-notes simple encodage UTF-8, ma création d'image en PHP a commencé.

  • Mon problème.

J'ai une phrase en ourdou (langue parlée par un milliard en Asie du Sud), par exemple une chaîne - enregistrée en UTF-8, étant parfaitement enregistrée dans la base de données et montré dans les navigateurs Web.

Contrairement à l'anglais, lettres ourdou se joignent pour former des mots, Tout en joignant, leur forme apparente est recadrée - taille ou le style.

Je travaille sur ce code

<?php 
function watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile) { 
    //$SourceFile is source of the image file to be watermarked 
    //$WaterMarkText is the text of the watermark 
    //$DestinationFile is the destination location where the watermarked images will be placed 
    //Delete if destinaton file already exists 
    @unlink($DestinationFile); 

    //This is the vertical center of the image 
    $top = getimagesize($SourceFile); 
    $top = $top[1]/2; 
    list($width, $height) = getimagesize($SourceFile); 

    $image_p = imagecreatetruecolor($width, $height); 

    $image = imagecreatefromjpeg($SourceFile); 

    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height); 

    //Path to the font file on the server. Do not miss to upload the font file 
    $font = 'arial.ttf'; 

    //Font sie 
    $font_size = 36; 

    //Give a white shadow 
    $white = imagecolorallocate($image_p, 255, 255, 155); 
    imagettftext($image_p, $font_size, 0, 10, $top, $white, $font, $WaterMarkText); 

    //Print in black color 
    $black = imagecolorallocate($image_p, 0, 0, 0); 
    imagettftext($image_p, $font_size, 0, 8, $top-1, $black, $font, $WaterMarkText); 

    if ($DestinationFile<>'') { 

     imagejpeg ($image_p, $DestinationFile, 100); 

    } else { 

     header('Content-Type: image/jpeg'); 

     imagejpeg($image_p, null, 100); 

    }; 

    imagedestroy($image); 

    imagedestroy($image_p); 

}; 

?> 

<?php 
/* 
// The text to draw 
    require('../../../I18N/Arabic.php'); // It converts the left side language to right side 
    $Arabic = new I18N_Arabic('Glyphs'); // 
    $font = './DroidNaskh-Bold.ttf'; 
$text = "جب درخشاں ہوں ستاروں کے چراغ"; 

$text = $Arabic->utf8Glyphs('جب درخشاں ہوں ستاروں کے چراغ '); 
It gave me ﻍﺍﺭچ ےک ںﻭﺭﺎﺘﺳںﻭہ ںﺎﺸﺧﺭﺩ ﺐﺟ , reversing the string , 
*/ 

$text = "ﻍﺍﺭچ ےک ںﻭﺭﺎﺘﺳںﻭہ ںﺎﺸﺧﺭﺩ ﺐﺟ"; // Problem in joining of Urdu - 

// Text 
// Sequence of characters reversed in string using utf8Glyphs() ; 

$SourceFile = 'nature (28).jpg';//Source image 
$DestinationFile = 'watermarked/sky.jpg';//Destination path 
//Call the function to watermark the image 
watermarkImage ($SourceFile, $text, $DestinationFile); 

//Display watermarked image if desired 
if(file_exists($DestinationFile)){ 
    echo "<img src=\"watermarked/sky.jpg\">"; 
    echo "<p>The image has been watermarked at '".$DestinationFile."'</p>"; 
} 
?> 

Ma création d'image à la volée pour les autres alors UTF-8 fonctionne très bien.

Cordialement.

Répondre

0

Vous aurez besoin d'une bibliothèque supplémentaire pour effectuer glyphe se joindre à l'arabe. Consultez AR-PHP.

+0

Cher Asif, AOA. J'ai essayé beaucoup, Quelques mots ne se joignent pas au besoin en ourdou. – wasif

+0

de même question « m face, si vous l'avez résolu s'il vous plaît le partager @wasif – Haseeb

+0

avez-vous une solution, je suis dans le même problème –