Pregunta

Tengo un montón de líneas de texto en árabe en UTF-8. El dispositivo que estoy tratando de mostrar éste no soporta texto árabe está visualizando. Por lo tanto, necesito para convertir el texto en imágenes.

Me gustaría guardar cada línea de texto como una imagen con un ancho específico. Necesito utilizar una fuente específica también. ¿Cuál es la mejor manera de hacer esto? ¿Alguien sabe de una herramienta que puede ser útil aquí?

Los problemas que he encontrado hasta ahora:

PHP + GD: letras árabes aparecen separados y no en cursiva como deberían. VB.net: puedo volcar cada línea de texto en un RichTextBox ... pero no sé cómo exportar la imagen de algo que el control. Inflamación:. No hay soporte para texto de derecha a izquierda

¿Fue útil?

Solución

Árabe , necesita una biblioteca a revertir carbones de leña / glifos PHP / GD . véase, por ejemplo http://sourceforge.net/projects/ar-php/ o a http://www.ar-php.org/ .

Asegúrese archivo PHP es la codificación en Unicode / UTF .
p.ej. > Bloc de notas abierto> Guardar como> codificación como UTF-8:

Ejemplo de uso para la tipografía de Árabe en PHP usando imagettftext :

<?php 
    // The text to draw
    require('./I18N/Arabic.php'); 
    $Arabic = new I18N_Arabic('Glyphs'); 
    $font = './DroidNaskh-Bold.ttf';
    $text = $Arabic->utf8Glyphs('لغةٌ عربيّة');

    // Create the image
    $im = imagecreatetruecolor(600, 300);

    // Create some colors
    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 128, 128, 128);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 599, 299, $white);

    // Add the text
    imagettftext($im, 50, 0, 90, 90, $black, $font, $text);

    // Using imagepng() results in clearer text compared with imagejpeg()
    imagepng($im, "./output_arabic_image.png");
    echo 'open: ./output_arabic_image.png';
    imagedestroy($im); 
?>

Salidas:

introducir descripción de la imagen aquí

Otros consejos

He oído que Pango maneja trazado árabe bastante bien. no lo han utilizado sin embargo.

Actualización:

El pango-view utilidad puede representar el texto en cualquier lenguaje y de salida como una imagen

$ pango-view input_file.txt --no-display --output=image.png

o puede proporcionar el texto como una opción, así:

$ pango-view --no-display --output=image.png --text="your sentence"

También puede especificar un ancho:

--width=50 -wrap=word

<< final de la actualización

Por otra parte, hay algunos programas que utilizan caracteres Unicode que representan formas de las letras árabes contextuales y el texto del proceso y lo hacen se muestra correctamente en sistemas que no pueden representar el texto árabe correctamente.

Estos son los que conozco de:

Son todos de código abierto, por lo que incluso si usted no utiliza ninguno de estos idiomas, se puede estudiar el código y crear una solución en el lenguaje de programación de elección.

Hay muchas maneras; Windows.Forms usando, por ejemplo, te pienso:

  • Crea una instancia imagen vacía; Creo que en este punto se definen dimensiones de la imagen
  • Crea una instancia de gráficos de la imagen, utilizando el método Graphics.FromImage
  • Invoque el método del control (la RichTextBox) que le indica que debe pintarse:. Y a ese método, pasar la instancia de gráficos asociado con su imagen, de modo que se pinta sobre la imagen

No estoy seguro de si todavía esperando una respuesta, pero no hay solución muy limpia y ordenada para su problema. Usted puede cambiar cualquier texto, incluyendo RTL, a la imagen en función de su clase CSS. Pero déjeme decirle en primer lugar, PHP y GD lo que alguna vez, no hace ningún bien para el texto RTL. Usted debe tratar de reemplazo de texto basado en asp.net ancho.

Una vez que entré el mismo camino y luchado durante días. Esto es lo que debe hacer.

En primer lugar ir a la siguiente dirección y ver el tutorial y descargar los archivos. http://weblogs.asp.net /yaneshtyagi/archive/2008/11/07/text-to-image-convertor.aspx

En segundo lugar usted necesita un servidor asp.net. Se puede instalar o puede utilizar uno de los servidores virtuales, tales como servidor de mono asp.net, o puede utilizar desarrollador web visual.

El código obtendrá convierte el texto de la imagen una sola línea en, aunque se puede especificar el ancho. En ese caso, larga línea de texto se encogen y se vuelve ilegible. Lo que necesita es a Ajustar texto basado en la anchura especificada.

Aquí en este enlace que explica cómo modificar el código en fontwriter.ashx para lograr el ajuste de texto. http://www.codeproject.com/Questions /189513/Dynamic-Image-Replacement-Method-with-Csharp.aspx

En tercer lugar ejecuta el servidor a través de su página de asp.net. Una vez que tenga las imágenes se puede guardar, haga clic derecho y guardar como, con Firefox, Firefox funciona mejor hasta el momento.

Ahora, todo el texto se convierte en imágenes y texto original se añadirá a la imagen como etiqueta Alt . Espero eso ayude.

Tengo la intención de publicar un tutorial sobre el tema pronto. Compruebe www.codeproject.com más tarde.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top