نمایش نتایج 1 تا 35 از 35

نام تاپیک: نوشتن متن فارسی روی عکس

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: نوشتن متن فارسی روی عکس

    آقا دم همگی گرم خیلی با حالین من کل کد رو با توجه به کد های دوستان یکجا به صورت زیر جمع کردم و بعد تست کردم نتیجه شد مثل زیر لطفا راهنمایی کنید


    <?php
    /** * Created by PhpStorm. * User: Exlord (adeli.farhad@gmail.com) * Date: 9/16/14 * Time: 9:20 AM */
    function farsi_correct($string)
    {
    // Reverse the string
    $len = mb_strlen($string, 'utf-8');
    $result = ''; for ($i = ($len - 1); $i >= 0; $i--)
    {
    $result .= mb_substr($string, $i, 1, 'utf-8');
    }
    // These chars work as space when a character comes after them, so the next character will not connect to them
    $spaces_after = array('', ' ', 'ا', 'آ', 'أ', 'إ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'و', 'ؤ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');
    // These chars work as space when a character comes before them, so the previous character will not connect to them
    $spaces_before = array('', ' ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');
    // Persian chars with their different styles at different positions:
    // Alone, After a non-space char, Before a non-space char, between two non-space chars
    $chars = array();
    $chars[] = array('آ', 'ﺂ', 'آ', 'ﺂ');
    $chars[] = array('أ', 'ﺄ', 'ﺃ', 'ﺄ');
    $chars[] = array('إ', 'ﺈ', 'ﺇ', 'ﺈ');
    $chars[] = array('ا', 'ﺎ', 'ا', 'ﺎ');
    $chars[] = array('ب', 'ﺐ', 'ﺑ', 'ﺒ');
    $chars[] = array('پ', 'ﭗ', 'ﭘ', 'ﭙ');
    $chars[] = array('ت', 'ﺖ', 'ﺗ', 'ﺘ');
    $chars[] = array('ث', 'ﺚ', 'ﺛ', 'ﺜ');
    $chars[] = array('ج', 'ﺞ', 'ﺟ', 'ﺠ');
    $chars[] = array('چ', 'ﭻ', 'ﭼ', 'ﭽ');
    $chars[] = array('ح', 'ﺢ', 'ﺣ', 'ﺤ');
    $chars[] = array('خ', 'ﺦ', 'ﺧ', 'ﺨ');
    $chars[] = array('د', 'ﺪ', 'ﺩ', 'ﺪ');
    $chars[] = array('ذ', 'ﺬ', 'ﺫ', 'ﺬ');
    $chars[] = array('ر', 'ﺮ', 'ﺭ', 'ﺮ');
    $chars[] = array('ز', 'ﺰ', 'ﺯ', 'ﺰ');
    $chars[] = array('ژ', 'ﮋ', 'ﮊ', 'ﮋ');
    $chars[] = array('س', 'ﺲ', 'ﺳ', 'ﺴ');
    $chars[] = array('ش', 'ﺶ', 'ﺷ', 'ﺸ');
    $chars[] = array('ص', 'ﺺ', 'ﺻ', 'ﺼ');
    $chars[] = array('ض', 'ﺾ', 'ﺿ', 'ﻀ');
    $chars[] = array('ط', 'ﻂ', 'ﻃ', 'ﻄ');
    $chars[] = array('ظ', 'ﻆ', 'ﻇ', 'ﻈ');
    $chars[] = array('ع', 'ﻊ', 'ﻋ', 'ﻌ');
    $chars[] = array('غ', 'ﻎ', 'ﻏ', 'ﻐ');
    $chars[] = array('ف', 'ﻒ', 'ﻓ', 'ﻔ');
    $chars[] = array('ق', 'ﻖ', 'ﻗ', 'ﻘ');
    $chars[] = array('ک', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('ك', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('گ', 'ﮓ', 'ﮔ', 'ﮕ');
    $chars[] = array('ل', 'ﻞ', 'ﻟ', 'ﻠ');
    $chars[] = array('م', 'ﻢ', 'ﻣ', 'ﻤ');
    $chars[] = array('ن', 'ﻦ', 'ﻧ', 'ﻨ');
    $chars[] = array('و', 'ﻮ', 'ﻭ', 'ﻮ');
    $chars[] = array('ؤ', 'ﺆ', 'ﺅ', 'ﺆ');
    $chars[] = array('ی', 'ﯽ', 'ﯾ', 'ﯿ');
    $chars[] = array('ي', 'ﻲ', 'ﻳ', 'ﻴ');
    $chars[] = array('ئ', 'ﺊ', 'ﺋ', 'ﺌ');
    $chars[] = array('ه', 'ﻪ', 'ﮬ', 'ﮭ');
    $chars[] = array('ۀ', 'ﮥ', 'ﮬ', 'ﮭ');
    $chars[] = array('ة', 'ﺔ', 'ﺗ', 'ﺘ');
    $chars[] = array(' ', ' ', ' ', ' ');
    $chars[] = array('0', '0', '0', '0');
    $chars[] = array('1', '1', '1', '1');
    $chars[] = array('2', '2', '2', '2');
    $chars[] = array('3', '3', '3', '3');
    $chars[] = array('4', '4', '4', '4');
    $chars[] = array('5', '5', '5', '5');
    $chars[] = array('6', '6', '6', '6');
    $chars[] = array('7', '7', '7', '7');
    $chars[] = array('8', '8', '8', '8');
    $chars[] = array('9', '9', '9', '9');
    $chars[] = array('؟', '؟', '؟', '؟');
    $chars[] = array('!', '!', '!', '!');
    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = array();
    $buffer = array();
    for ($i = 0; $i < $len; $i++)
    {
    $previous_char = $i > 0 ? mb_substr($string, $i - 1, 1, 'utf-8') : '';
    $current_char = mb_substr($string, $i, 1, 'utf-8');
    $next_char = $i < ($len - 1) ? mb_substr($string, $i + 1, 1, 'utf-8') : '';
    $in_array = false;
    foreach ($chars as $char)
    {
    if (in_array($current_char, $char))
    {
    $in_array = true;
    if (!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before))
    {
    if ($current_char == ' ')
    {
    if (!in_farsi_array($chars, $next_char) && !in_farsi_array($chars, $previous_char))
    {
    $in_array = false;
    }
    else
    {
    $result[] = $char[3];
    }
    }
    else
    {
    $result[] = $char[3];
    }
    }
    elseif (!in_array($previous_char, $spaces_before))
    {
    $result[] = $char[2];
    }
    elseif (!in_array($next_char, $spaces_after))
    {
    $result[] = $char[1];
    }
    else
    {
    $result[] = $char[0];
    }
    continue;
    }
    }
    if (!$in_array)
    {
    $buffer[] = $current_char;
    }
    else
    {
    $lastChar = array_pop($result);
    $result = array_merge($result, $buffer);
    $result[] = $lastChar;
    $buffer = array();
    }
    $in_array = false;
    }
    if (count($buffer))
    $result = array_merge($result, $buffer);
    return implode('', $result);
    }
    function in_farsi_array(&$farsi, $text)
    {
    foreach ($farsi as $t)
    {
    if (in_array($text, $t))
    return true;
    }
    return false;
    }
    $string = isset($_GET['string']) ? farsi_correct($_GET['string']) : '';
    $w = 300;
    $h = 200;
    $im = imagecreatetruecolor($w, $h);
    $c_green = imagecolorallocate($im, 127, 255, 127);
    $c_black = imagecolorallocate($im, 0, 0, 0);
    imagefill($im, ceil($w / 2), ceil($h / 2), $c_green);
    $box = imagettfbbox(10, 0, 'tahoma.ttf', $string);
    imagettftext($im, 10, 0, ($w - $box[4]) / 2, ($h - $box[5]) / 2, $c_black, 'tahoma.ttf', $string);
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
    ?>

    اطلاعات رو به صورت زیر ارسال کردم

    http://localhost/demo/faimage/index.php?string=In The Name Of God

    حاصل شد تصویر زیر

    بعد اطلاعات رو به صورد زیر ارسال کردم

    http://localhost/demo/faimage/index.php?string=به نام خداوند جان و خرد

    حاصل شد تصویر زیر

  2. #2

    نقل قول: نوشتن متن فارسی روی عکس

    سلام مرسی ولی با حرف "ه" مشکل داره

    نقل قول نوشته شده توسط hamidhassas مشاهده تاپیک
    آقا دم همگی گرم خیلی با حالین من کل کد رو با توجه به کد های دوستان یکجا به صورت زیر جمع کردم و بعد تست کردم نتیجه شد مثل زیر لطفا راهنمایی کنید


    <?php
    /** * Created by PhpStorm. * User: Exlord (adeli.farhad@gmail.com) * Date: 9/16/14 * Time: 9:20 AM */
    function farsi_correct($string)
    {
    // Reverse the string
    $len = mb_strlen($string, 'utf-8');
    $result = ''; for ($i = ($len - 1); $i >= 0; $i--)
    {
    $result .= mb_substr($string, $i, 1, 'utf-8');
    }
    // These chars work as space when a character comes after them, so the next character will not connect to them
    $spaces_after = array('', ' ', 'ا', 'آ', 'أ', 'إ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'و', 'ؤ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');
    // These chars work as space when a character comes before them, so the previous character will not connect to them
    $spaces_before = array('', ' ', '?', '؟', ')', '(', '"', "'", '<', '>', '.');
    // Persian chars with their different styles at different positions:
    // Alone, After a non-space char, Before a non-space char, between two non-space chars
    $chars = array();
    $chars[] = array('آ', 'ﺂ', 'آ', 'ﺂ');
    $chars[] = array('أ', 'ﺄ', 'ﺃ', 'ﺄ');
    $chars[] = array('إ', 'ﺈ', 'ﺇ', 'ﺈ');
    $chars[] = array('ا', 'ﺎ', 'ا', 'ﺎ');
    $chars[] = array('ب', 'ﺐ', 'ﺑ', 'ﺒ');
    $chars[] = array('پ', 'ﭗ', 'ﭘ', 'ﭙ');
    $chars[] = array('ت', 'ﺖ', 'ﺗ', 'ﺘ');
    $chars[] = array('ث', 'ﺚ', 'ﺛ', 'ﺜ');
    $chars[] = array('ج', 'ﺞ', 'ﺟ', 'ﺠ');
    $chars[] = array('چ', 'ﭻ', 'ﭼ', 'ﭽ');
    $chars[] = array('ح', 'ﺢ', 'ﺣ', 'ﺤ');
    $chars[] = array('خ', 'ﺦ', 'ﺧ', 'ﺨ');
    $chars[] = array('د', 'ﺪ', 'ﺩ', 'ﺪ');
    $chars[] = array('ذ', 'ﺬ', 'ﺫ', 'ﺬ');
    $chars[] = array('ر', 'ﺮ', 'ﺭ', 'ﺮ');
    $chars[] = array('ز', 'ﺰ', 'ﺯ', 'ﺰ');
    $chars[] = array('ژ', 'ﮋ', 'ﮊ', 'ﮋ');
    $chars[] = array('س', 'ﺲ', 'ﺳ', 'ﺴ');
    $chars[] = array('ش', 'ﺶ', 'ﺷ', 'ﺸ');
    $chars[] = array('ص', 'ﺺ', 'ﺻ', 'ﺼ');
    $chars[] = array('ض', 'ﺾ', 'ﺿ', 'ﻀ');
    $chars[] = array('ط', 'ﻂ', 'ﻃ', 'ﻄ');
    $chars[] = array('ظ', 'ﻆ', 'ﻇ', 'ﻈ');
    $chars[] = array('ع', 'ﻊ', 'ﻋ', 'ﻌ');
    $chars[] = array('غ', 'ﻎ', 'ﻏ', 'ﻐ');
    $chars[] = array('ف', 'ﻒ', 'ﻓ', 'ﻔ');
    $chars[] = array('ق', 'ﻖ', 'ﻗ', 'ﻘ');
    $chars[] = array('ک', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('ك', 'ﻚ', 'ﻛ', 'ﻜ');
    $chars[] = array('گ', 'ﮓ', 'ﮔ', 'ﮕ');
    $chars[] = array('ل', 'ﻞ', 'ﻟ', 'ﻠ');
    $chars[] = array('م', 'ﻢ', 'ﻣ', 'ﻤ');
    $chars[] = array('ن', 'ﻦ', 'ﻧ', 'ﻨ');
    $chars[] = array('و', 'ﻮ', 'ﻭ', 'ﻮ');
    $chars[] = array('ؤ', 'ﺆ', 'ﺅ', 'ﺆ');
    $chars[] = array('ی', 'ﯽ', 'ﯾ', 'ﯿ');
    $chars[] = array('ي', 'ﻲ', 'ﻳ', 'ﻴ');
    $chars[] = array('ئ', 'ﺊ', 'ﺋ', 'ﺌ');
    $chars[] = array('ه', 'ﻪ', 'ﮬ', 'ﮭ');
    $chars[] = array('ۀ', 'ﮥ', 'ﮬ', 'ﮭ');
    $chars[] = array('ة', 'ﺔ', 'ﺗ', 'ﺘ');
    $chars[] = array(' ', ' ', ' ', ' ');
    $chars[] = array('0', '0', '0', '0');
    $chars[] = array('1', '1', '1', '1');
    $chars[] = array('2', '2', '2', '2');
    $chars[] = array('3', '3', '3', '3');
    $chars[] = array('4', '4', '4', '4');
    $chars[] = array('5', '5', '5', '5');
    $chars[] = array('6', '6', '6', '6');
    $chars[] = array('7', '7', '7', '7');
    $chars[] = array('8', '8', '8', '8');
    $chars[] = array('9', '9', '9', '9');
    $chars[] = array('؟', '؟', '؟', '؟');
    $chars[] = array('!', '!', '!', '!');
    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = array();
    $buffer = array();
    for ($i = 0; $i < $len; $i++)
    {
    $previous_char = $i > 0 ? mb_substr($string, $i - 1, 1, 'utf-8') : '';
    $current_char = mb_substr($string, $i, 1, 'utf-8');
    $next_char = $i < ($len - 1) ? mb_substr($string, $i + 1, 1, 'utf-8') : '';
    $in_array = false;
    foreach ($chars as $char)
    {
    if (in_array($current_char, $char))
    {
    $in_array = true;
    if (!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before))
    {
    if ($current_char == ' ')
    {
    if (!in_farsi_array($chars, $next_char) && !in_farsi_array($chars, $previous_char))
    {
    $in_array = false;
    }
    else
    {
    $result[] = $char[3];
    }
    }
    else
    {
    $result[] = $char[3];
    }
    }
    elseif (!in_array($previous_char, $spaces_before))
    {
    $result[] = $char[2];
    }
    elseif (!in_array($next_char, $spaces_after))
    {
    $result[] = $char[1];
    }
    else
    {
    $result[] = $char[0];
    }
    continue;
    }
    }
    if (!$in_array)
    {
    $buffer[] = $current_char;
    }
    else
    {
    $lastChar = array_pop($result);
    $result = array_merge($result, $buffer);
    $result[] = $lastChar;
    $buffer = array();
    }
    $in_array = false;
    }
    if (count($buffer))
    $result = array_merge($result, $buffer);
    return implode('', $result);
    }
    function in_farsi_array(&$farsi, $text)
    {
    foreach ($farsi as $t)
    {
    if (in_array($text, $t))
    return true;
    }
    return false;
    }
    $string = isset($_GET['string']) ? farsi_correct($_GET['string']) : '';
    $w = 300;
    $h = 200;
    $im = imagecreatetruecolor($w, $h);
    $c_green = imagecolorallocate($im, 127, 255, 127);
    $c_black = imagecolorallocate($im, 0, 0, 0);
    imagefill($im, ceil($w / 2), ceil($h / 2), $c_green);
    $box = imagettfbbox(10, 0, 'tahoma.ttf', $string);
    imagettftext($im, 10, 0, ($w - $box[4]) / 2, ($h - $box[5]) / 2, $c_black, 'tahoma.ttf', $string);
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
    ?>

    اطلاعات رو به صورت زیر ارسال کردم

    http://localhost/demo/faimage/index.php?string=In The Name Of God

    حاصل شد تصویر زیر

    بعد اطلاعات رو به صورد زیر ارسال کردم

    http://localhost/demo/faimage/index.php?string=به نام خداوند جان و خرد

    حاصل شد تصویر زیر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •