문제

UTF-8에는 많은 아랍어 텍스트 라인이 있습니다. 이 표시를하려는 장치는 아랍어 텍스트가 표시되는 것을 지원하지 않습니다. 따라서 텍스트를 이미지로 변환해야합니다.

각 텍스트 라인을 특정 너비의 이미지로 저장하고 싶습니다. 특정 글꼴도 사용해야합니다. 이것을하는 가장 좋은 방법은 무엇입니까? 여기서 도움이 될 수있는 도구를 아는 사람이 있습니까?

지금까지 발생하는 문제 :

PHP + GD : 아랍어 문자는 분리되고 필기체가 아닌 것처럼 보입니다. vb.net : 각 텍스트 라인을 RichTextBox에 버릴 수 있지만 그 컨트롤의 이미지를 내보내는 방법을 모르겠습니다. 플래시 : 오른쪽에서 왼쪽 텍스트를 지원하지 않습니다.

도움이 되었습니까?

해결책

에 관해서 아라비아 말, 당신은 도서관이 필요합니다 리버스 숯/글리프 ~을 위한 PHP/GD. 예를 들어보십시오 http://sourceforge.net/projects/ar-php/ 또는 http://www.ar-php.org/.

확실하게 하다 당신의 PHP 파일 인코딩이 있습니다 유니 코드/UTF.
예를 들어> 개방 메모장> UTF-8으로 인코딩으로 저장 : :

PHP 사용에서 아랍어 타이포그래피에 대한 샘플 사용 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); 
?>

출력 :

enter image description here

다른 팁

나는 그 말을 들었다 판고 아랍어 레이아웃을 잘 처리합니다. 그래도 사용하지 않았습니다.

업데이트:

유틸리티 pango-view 텍스트를 렌더링 할 수 있습니다 어느 언어와 이미지로 출력합니다

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

또는 텍스트도 옵션으로 제공 할 수 있습니다.

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

너비를 지정할 수도 있습니다.

--width=50 -wrap=word

<< 업데이트 종료

또는 상황에 맞는 아랍어 문자 양식과 프로세스 텍스트를 나타내는 유니 코드 문자를 사용하고 아랍어 텍스트를 올바르게 렌더링 할 수없는 시스템에서 올바르게 렌더링하는 몇 가지 프로그램이 있습니다.

내가 아는 것들은 다음과 같습니다.

그들은 모두 오픈 소스이므로 이러한 언어를 사용하지 않더라도 코드를 연구하고 선택한 프로그래밍 언어로 솔루션을 만들 수 있습니다.

여러 가지 방법이 있습니다. 예를 들어 Windows.forms를 사용하면 다음과 같습니다.

  • 빈 이미지 인스턴스를 만듭니다. 이 시점에서 이미지의 차원을 정의한다고 생각합니다.
  • 그래픽을 사용하여 이미지에서 그래픽 인스턴스 생성 .fromimage 메소드
  • 제어 방법 (RichTextBox)의 메소드를 호출하여 자체적으로 페인트를 칠하도록 지시합니다. 그리고 그 방법으로 이미지와 관련된 그래픽 인스턴스를 전달하여 이미지에 페인트를 칠하십시오.

여전히 답을 기다리고 있는지 확실하지 않지만 문제에 대한 매우 깨끗하고 깔끔한 해결책이 있습니다. CSS 클래스를 기반으로 RTL을 포함한 텍스트를 이미지로 변경할 수 있습니다. 그러나 먼저 PHP와 GD를 말해 드리겠습니다. RTL 텍스트에는 좋지 않습니다. 너비를 기준으로 ASP.NET 텍스트 교체를 시도해야합니다.

일단 내가 같은 길을 걸고 며칠 동안 고생했습니다. 여기에해야 할 일이 있습니다.

먼저 다음 주소로 이동하여 자습서를보고 파일을 다운로드하십시오.http://weblogs.asp.net/yaneshtyagi/archive/2008/11/07/text-to-image-convertor.aspx

둘째, ASP.NET 서버가 필요합니다. 설치하거나 Mono Asp.net 서버와 같은 가상 서버 중 하나를 사용할 수 있거나 Visual Web Developer를 사용할 수 있습니다.

얻을 수있는 코드는 텍스트를 한 줄 이미지로 변환하지만 너비를 지정할 수 있습니다. 이 경우 긴 텍스트 라인이 줄어들고 눈에 띄지 않습니다. 필요한 것은 지정된 너비를 기준으로 랩 랩을하는 것입니다.

이 링크에서는 텍스트 랩을 달성하기 위해 fontwriter.ashx의 코드를 변경하는 방법을 설명하는이 링크에서. http://www.codeproject.com/questions/189513/dynamic-image-replacement-method-with-csharp.aspx

세 번째 ASP.NET 서버를 통해 페이지를 실행하십시오. 이미지를 저장할 수 있으면 마우스 오른쪽 버튼을 클릭하고 Firefox를 사용하여 Firefox가 지금까지 가장 잘 작동합니다.

이제 모든 텍스트가 이미지로 변환되고 원본 텍스트가 이미지에 추가됩니다. 대체 꼬리표. 도움이되기를 바랍니다.

곧이 문제에 대한 튜토리얼을 게시 할 계획입니다. 나중에 www.codeproject.com을 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top