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

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

  1. #1
    کاربر دائمی آواتار Bahram0110
    تاریخ عضویت
    آبان 1384
    محل زندگی
    شیراز | یاسوج | اهواز
    پست
    1,058
    تشکر کردن
    135
    251 بار تشکر شده در 186 پست

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


    $font = imageloadfont("farsifont");

    کسی فونت فارسی برای استفاده در این تابع نداره؟
    یا! : می شه روی یه عکس متن فارسی بنویسیم؟
    این تاپیکو با عنوان Imageloadfont هم ایجاد کردم ولی کسی جواب نداد فکر کنم عنوانش یکم ترسناک بود!
    لطفا در پیغام خصوصی درخواست راهنمایی یا کمک نکنید، تاپیک بزنید اگر دیدم و بلد بودم جواب می دم!

  2. کاربرانی که به خاطر مطلب مفید Bahram0110 از وی تشکر کرده‌اند:


  3. #2
    کاربر دائمی آواتار Bahram0110
    تاریخ عضویت
    آبان 1384
    محل زندگی
    شیراز | یاسوج | اهواز
    پست
    1,058
    تشکر کردن
    135
    251 بار تشکر شده در 186 پست
    دوست عزیزمون I,Nobody نوشتن که :

    این مشکل اغلب برنامه نویس های ایرانی هست که فکر نمی کنم هنوز حل شده باشه.
    البته یادمه قبلاً یکی دو نفر(یا تیم) این کارو انجام داده بودن ولی متاسفانه معماری رو توضیح ندادن و میخواستن ازش استفاده تجاری بکنن.
    البته اونا هم فقط با یک فونت کار میکردن.
    خیلی وقته که دیگه خبر ندارم که این مشکل حل شده یا نه؟ چون بهش نیاز پیدا نکردم.
    اگه کسی چیزی پیدا کرده، لطفاً توی همین تاپیک قرار بده

  4. #3
    کاربر دائمی آواتار Bahram0110
    تاریخ عضویت
    آبان 1384
    محل زندگی
    شیراز | یاسوج | اهواز
    پست
    1,058
    تشکر کردن
    135
    251 بار تشکر شده در 186 پست
    برای ساخت فونت تو این عکس یه توضیحاتی داده ولی من چیزی . . .


    فکر کنم فونتش باید فرمت خاصی داشته باشه
    لطفا در پیغام خصوصی درخواست راهنمایی یا کمک نکنید، تاپیک بزنید اگر دیدم و بلد بودم جواب می دم!

  5. #4
    کاربر دائمی آواتار Bahram0110
    تاریخ عضویت
    آبان 1384
    محل زندگی
    شیراز | یاسوج | اهواز
    پست
    1,058
    تشکر کردن
    135
    251 بار تشکر شده در 186 پست
    نوشته شده توسط : I,Nobody
    ساختن عکس با فونت های مختلف که کاری نداره.
    PHP توابع غنی برای این کار داره.
    مساله فارسی نویسی بدون اشکال در ساخت عکس هست.

  6. #5
    کاربر دائمی آواتار moslem-visual
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    كرمان
    پست
    142
    تشکر کردن
    29
    190 بار تشکر شده در 40 پست
    متاسفانه این مشکل وجود داره و تابحال راه حلی به طور عمومی ارائه نشده، نظیر این مشکل در ساخت PDF توسط توابع مربوطه وجود داره که حل اون نیاز به کار تخصصی و با همکاری شورای حمایت از زبان پارسی در وب داره.
    www.myview.ir

  7. #6
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1386
    پست
    38
    تشکر کردن
    5
    21 بار تشکر شده در 13 پست
    نقل قول نوشته شده توسط moslem-visual مشاهده تاپیک
    متاسفانه این مشکل وجود داره و تابحال راه حلی به طور عمومی ارائه نشده، نظیر این مشکل در ساخت PDF توسط توابع مربوطه وجود داره که حل اون نیاز به کار تخصصی و با همکاری شورای حمایت از زبان پارسی در وب داره.
    سلام
    این فایلی که ضمیمه کردم یه کلاس دست نوشته برای حل مشکل فارسی نویسی در pdf ها هست. البته من وقت نکردم تستش کنم اما نویسندش ادعا کرده مشکل رو تا حد زیادی اما نه کاملا حل کرده.
    موفق باشید
    فایل های ضمیمه فایل های ضمیمه

  8. 2 کاربر از alireza82 به خاطر این مطلب مفید تشکر کرده اند:


  9. #7
    کاربر دائمی آواتار Bahram0110
    تاریخ عضویت
    آبان 1384
    محل زندگی
    شیراز | یاسوج | اهواز
    پست
    1,058
    تشکر کردن
    135
    251 بار تشکر شده در 186 پست
    نقل قول نوشته شده توسط alireza82 مشاهده تاپیک
    سلام
    این فایلی که ضمیمه کردم یه کلاس دست نوشته برای حل مشکل فارسی نویسی در pdf ها هست.
    دوست عزیز مثل اینکه چند تا فایل پروژه رو ضمیمه نکردی
    ارور داد
    لطفا در پیغام خصوصی درخواست راهنمایی یا کمک نکنید، تاپیک بزنید اگر دیدم و بلد بودم جواب می دم!

  10. #8
    کاربر جدید
    تاریخ عضویت
    شهریور 1385
    پست
    12
    تشکر کردن
    7
    2 بار تشکر شده در 2 پست

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

    مشکل حل شد: http://developer.berlios.de/project/...?group_id=4533
    مسیر دوم برای دانلود فایل ها: http://daszarrin.persiangig.com/PHP/...is-2.0.tar.bz2

  11. #9
    کاربر دائمی آواتار farhadfery
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    پست
    723
    تشکر کردن
    416
    292 بار تشکر شده در 228 پست

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

    قبلا در موردش تو همین انجمن بحث شده. سرچ بزنید!! فکر کنم در بخش تاپیک های مهم هم باشه. همانطر که گقته شد هنوز راه حل جامع ارایه نشده.
    - هر کجا قرار گرفته اید, همانجا را مرکز دنیا بدانید.
    - farhadfery.blog.ir

  12. #10
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    من هم دارم یک کلاس ساده و راحت برای فارسی نویسی روی عکس مینویسم که به محض تکمیل، اینجا میگذارم. سعی کردم خیلی ساده تر از کدهای مشابه باشه و به کتابخانه خاصی هم نیاز نداره. موفق باشید.
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  13. کاربرانی که به خاطر مطلب مفید MMSHFE از وی تشکر کرده‌اند:


  14. #11
    کاربر دائمی آواتار Busaba
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    بوشهر
    پست
    175
    تشکر کردن
    268
    133 بار تشکر شده در 95 پست

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

    مهم اینه که درست کار کنه
    اگه درست کار کنه فوقالعاده هست...

  15. #12
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    هم درست کار میکنه، هم اینکه همراه با آموزش هست که خودتون هم بتونید در موارد مشابه، دست به کار بشین. موفق باشید.
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  16. کاربرانی که به خاطر مطلب مفید MMSHFE از وی تشکر کرده‌اند:


  17. #13
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    این کد رو ببینید (البته اینجا کمی بهم ریخته، بخصوص خونه های آرایه های حاوی حروف فارسی که از آخر به اول نوشته شده - بخاطر ادیتور - و بخاطر همین فایلش رو هم ضمیمه کردم) :

    <?php
    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');
    // Start processing the reversed string
    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = '';
    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') : '';
    foreach($chars as $char) {
    if(in_array($current_char, $char)) {
    if(!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before)) {
    $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];
    }
    }
    }
    }
    return $result;
    }
    $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);
    ?>
    این هم نمونه خروجی اون هست (من کد رو توی پوشه faimage و به اسم index.php ذخیره کردم و بصورت مهمان خوانده یا ناخوانده حبیب خداست=localhost/faimage/?string اون رو صدا زدم) :
    faimage.jpg
    فعلاً بصورت یک تابع نوشتمش. کار تابع مذکور (farsi_correct) تبدیل متن فارسی به شکل درست برای نمایش توسط GD هست. اگه فرصت کنم، بصورت یک کلاس در میارمش که بتونید به هر شکل دلخواه ازش استفاده کنید. هرجایی از کد نیاز به توضیح داشت، بفرمایید تا توضیحات لازم رو ارائه کنم.
    موفق باشید.
    فایل های ضمیمه فایل های ضمیمه
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  18. 4 کاربر از MMSHFE به خاطر این مطلب مفید تشکر کرده اند:


  19. #14
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    البته همونطور که میبینید، همه کارکترها رو توی این فایل نگذاشتم و خودتون میتونید تکمیلش کنید. مثلاً الآن نقطه و کاما و... یا ء (همزه) رو نمیشناسه. اگه بخواین این کارکترها رو اضافه کنید، باید هم در آرایه chars اونها رو قرار بدین (حالتهای تنها، چسبیده به حرف قبل، چسبیده به حرف بعد و ازدوطرف چسبیده رو باید تعریف کنید که مثلاً برای کاما و همزه و نقطه، هر چهار حالت مثل هم هست). ضمناً اگه کارکتر مربوطه به حرف بعدیش نمی چسبه، اون رو توی آرایه spaces_after و اگه به حرف قبلیش نمیچسبه، به spaces_before اضافه کنید. مثلاً نقطه توی هر دو آرایه قرار میگیره. اگه اینکار رو نکنید، حروف قبل و بعدش درست ظاهر نمیشه. موفق باشید.
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  20. #15
    کاربر دائمی آواتار exlord
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تبریز
    پست
    987
    تشکر کردن
    20
    576 بار تشکر شده در 426 پست

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

    این کدی که قرار دادین خیلی خوبه ولی تنها اشکالی که داره اینکه اگه متن حروف انگلیسی توش باشه ائنا حذف میشن ... میتونین اینو اصلاح کنین ؟؟؟

  21. #16
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    اینو امتحان کنید:

    <?php
    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');
    $engs = array_merge(range('A', 'Z'), range('a', 'z');
    foreach($engs as $eng) {
    $chars[] = array($eng, $eng, $eng, $eng);
    }
    // Start processing the reversed string
    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = '';
    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') : '';
    foreach($chars as $char) {
    if(in_array($current_char, $char)) {
    if(!in_array($next_char, $spaces_after) && !in_array($previous_char, $spaces_before)) {
    $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];
    }
    }
    }
    }
    return $result;
    }
    $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);
    ?>
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  22. کاربرانی که به خاطر مطلب مفید MMSHFE از وی تشکر کرده‌اند:


  23. #17
    کاربر دائمی آواتار exlord
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تبریز
    پست
    987
    تشکر کردن
    20
    576 بار تشکر شده در 426 پست

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

    برعکس چاپ میکنه

  24. #18
    کاربر دائمی آواتار exlord
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تبریز
    پست
    987
    تشکر کردن
    20
    576 بار تشکر شده در 426 پست

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

    ok خودم درستش کردم ... کدشو کاملتر کردم که تمام حروف رو شامل بشه ...
    الان جملات انگلیسی هم درست چاپ میشن ...

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

    $string = $result;
    $len = mb_strlen($string, 'utf-8');
    $result = '';
    $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;
    $in_array = false;
    } else {
    $result .= implode('', array_reverse($buffer));
    $buffer = array();
    }
    }
    if (!empty($buffer))
    $result .= implode('', array_reverse($buffer));

    return $result;
    }

    function in_farsi_array(&$farsi, $text)
    {
    foreach ($farsi as $t) {
    if (in_array($text, $t))
    return true;
    }
    return false;
    }
    آخرین ویرایش به وسیله exlord : دوشنبه 15 خرداد 1391 در 12:09 بعد از ظهر دلیل: کاملتر کردن کد

  25. #19
    کاربر جدید آواتار naser13
    تاریخ عضویت
    آبان 1388
    محل زندگی
    هرات
    پست
    23
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست

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


    Warning: imagettfbbox() [function.imagettfbbox]: any2eucjp(): something happen in E:\xampp\htdocs\faimage\faimage\index.php on line 136

    Warning: imagettftext() [function.imagettftext]: any2eucjp(): something happen in E:\xampp\htdocs\faimage\faimage\index.php on line 137

    Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\faimage\faimage\index.php:136) in E:\xampp\htdocs\sobhansoft\quota\faimage\faimage\i ndex.php on line 138
    ‰PNG  IHDR,ÈݽK–IDATxœíÙOh×uÇñïúå6Æ Ööc bBèr·¼Yø<ÌÔƒQ;Š¤`‡ô¢—uØIªCF ‡Ýü]&;'æPå¥VÊí'nΦ[‡"v°?“µ×o¿=‡ßåûÏû÷ýòäóýñk X(€œgÒÀF'B!„‰ÂDa"„0B˜!L„& B!„‰ÂDa"„0B˜!L„&B!„‰ÂDa" „0B˜!L„&B!„‰ÂDa"„0B˜!L„&B !„‰ÂDa"„0B˜!L„&B!„‰ÂDa" 0B˜!L„&B!„‰ÂDa"„0B˜!L„&B !„‰ÂDa"„0B˜!L„&B!„‰ÂDa" 0B˜!L„&B!„‰ÂDa"„0B˜!L„&B !„‰ÂDa"„0B˜!L„&B!„‰ÂDa"„ °gÓüi°i°ÜS~â¥û÷ÏΝýï˪?V+ý• ßÝÝúÆÖC_j.7¯ú«¾l¹Zžó)¾Îrëån¬ Z‰°s[çñï?ñÒ…Þ +ZVé¯tnëüíackcC©!=ÔÆÒ NoQ‹ ‹&ls{¥¿²ôxÉSøõaù¥r¹§|ó ³›»>Ø5vq¬gwOz¢ grlräôÈÄ×¥ÆRÓsMEQ,>Z,•Jé¹jW½½ŽEÑ ÷yߍOo 6NÝšÚ÷ñ¾ô8ËÂÜÂÐî¡öÛOŽŸ<3{æH Hz¢u ÞN¢(¶¼¾åԝS³wf;¶v¤gÙp¦Ç§ç«ó{Î íiéjIϲnÔáIXE©©¤ÀˆrOyS˦ëŸ\Ÿþaz| xüò»—Ó­µrVªþÝ5÷~¾·Òek°Åÿ7p-Ïù¯ËšÚ›uøÊ{W®ž»Úýj÷Ž·vL~;¹Ò]–‹?Ž5Ð0°4Ú(êõuÖB˜!L„&B!„ ‰ÂDa"„0B˜!L„&B!„‰ÂDa"„0B !L„&B!„‰ÂDa"„0B˜!L„&B!„ ÂDa"„0B˜!L„&B!„‰ÂDa"„0B˜ !L„&B!„‰ÂDa"„0B˜!L„&B!„ ÂDa"„0B˜!L„&B!„‰ÂDa"„0B˜ !L„&B!„‰ÂDa"„0B˜!L„&B!„‰ ÂDa"„0B˜!L„&B!„‰ÂDa"„0B˜! L„&B!„ý¿¢}d¤IEND


    ایرور میده
    www.sobhansoft.com
    www.sobhansoft.net
    www.4-afg.com
    www.narjobs.com



  26. #20
    کاربر جدید آواتار naser13
    تاریخ عضویت
    آبان 1388
    محل زندگی
    هرات
    پست
    23
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست

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

    ی , ه هم مشکل داره
    www.sobhansoft.com
    www.sobhansoft.net
    www.4-afg.com
    www.narjobs.com



  27. #21
    کاربر جدید آواتار naser13
    تاریخ عضویت
    آبان 1388
    محل زندگی
    هرات
    پست
    23
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست

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

    درستش کردم ولی یه مشکل هنوزم دارم چطوری حرف دیگه رو اضافه کنم , ><)( ".
    www.sobhansoft.com
    www.sobhansoft.net
    www.4-afg.com
    www.narjobs.com



  28. #22
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    2,676
    تشکر کردن
    1,637
    927 بار تشکر شده در 648 پست

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

    من از این تابع استفاده کردم تابع خوبیه. ولی یه مشکلی داره اونم اینکه وقتی یه متن فارسی رو مثلاً ش؟ بهش میدی در خروجی اینطوری برات نمایش میده: ؟ش
    برای اینکار باید دستور زیر رو بهش داد:
    کد HTML:
    <div style=direction:rtl;>ش؟</div>
    ولی چون من میخوام روی عکس نمایش بدم نمیشه این کد بالا رو بهش داد. کسی راه حلی نداره؟
    متشکرم.

    آموزش tkinter به زبان ساده

    اولين كتابي كه نوشتم : کتاب آموزش php به زبان ساده :
    http://barnamenevisi.blogsky.com/1391/01/06/post-96/

    لینک های آموزشی جدید را دریافت کنید: http://pachenar.ir/rss-learn.php

  29. #23
    کاربر تازه وارد آواتار aalmair
    تاریخ عضویت
    آبان 1392
    محل زندگی
    ارومیه
    پست
    78
    تشکر کردن
    2
    52 بار تشکر شده در 35 پست

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





    aalma.ir

    |
    آموزش PHP

    گوگل: من صاحب همه چیم
    ویکی پدیا: من همه چیو می‌دونم
    فیسبوک: من همرو میشناسم
    اینترنت: من نباشم شما ها هیچین
    برق: زر اضافی نزنید !


  30. کاربرانی که به خاطر مطلب مفید aalmair از وی تشکر کرده‌اند:


  31. #24
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    2,676
    تشکر کردن
    1,637
    927 بار تشکر شده در 648 پست

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

    نقل قول نوشته شده توسط aalmair مشاهده تاپیک
    من از برنامه ی شما استفاده کردم و فقط کلمه ی آرش رو درست نشون میده و هر چی می نویسم فاصله میذاره. توی اون تاپیک گفته بودید که فونت رو عوض کنید چه فونتی بذارم که مشکلی نداشته باشه؟

    آموزش tkinter به زبان ساده

    اولين كتابي كه نوشتم : کتاب آموزش php به زبان ساده :
    http://barnamenevisi.blogsky.com/1391/01/06/post-96/

    لینک های آموزشی جدید را دریافت کنید: http://pachenar.ir/rss-learn.php

  32. #25
    کاربر دائمی آواتار exlord
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تبریز
    پست
    987
    تشکر کردن
    20
    576 بار تشکر شده در 426 پست

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

    ی , ه هم مشکل داره
    من تست کردم مشکلی نمیبینم ... شما یه کلمه یا جمله که توش مشکل دارین بدین تا بررسی کنم
    درستش کردم ولی یه مشکل هنوزم دارم چطوری حرف دیگه رو اضافه کنم , ><)( ".
    مشکل . و " و ' رو حل کردم ولی برای جایجایی ><)( تو فارسی باید کد رو خیلی تغییر بدیم ... بازم وقت کردم بررسی میکنم
    من از این تابع استفاده کردم تابع خوبیه. ولی یه مشکلی داره اونم اینکه وقتی یه متن فارسی رو مثلاً ش؟ بهش میدی در خروجی اینطوری برات نمایش میده: ؟ش
    ؟ هم اضافه شد


    <?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('؟', '؟', '؟', '؟');

    $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);
    آخرین ویرایش به وسیله exlord : سه شنبه 25 شهریور 1393 در 11:19 قبل از ظهر دلیل: بروز رسانی کد

  33. #26
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    2,676
    تشکر کردن
    1,637
    927 بار تشکر شده در 648 پست

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

    از جوابتون ممنونم ولی این راه حلش نیست. که برخی حروف رو جداگانه درست کنیم. منم تونستم بیام و بین حرف مثلاً ش و علامت سوال فاصله ایجاد کنم و این مشکل حل شد. یعنی این دو تا روش با هم برق داره:
    ش ؟
    ش؟
    ولی مشکل فقط این علامت سوال نیست مثلا حرف علامت ! هم هست. اگه میشد قبل از متغییر $string مقدادیر داخلش رو با کمک direction:rtl از راست به چپ می کردیم بهتر بود.

    آموزش tkinter به زبان ساده

    اولين كتابي كه نوشتم : کتاب آموزش php به زبان ساده :
    http://barnamenevisi.blogsky.com/1391/01/06/post-96/

    لینک های آموزشی جدید را دریافت کنید: http://pachenar.ir/rss-learn.php

  34. #27
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    2,676
    تشکر کردن
    1,637
    927 بار تشکر شده در 648 پست

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

    بررسی کردم دیدم از این برنامه ای که شما نوشتید بهتر دیگه پیدا نمیشه
    برای قسمت علامت تعجبم یه همین ارایه رو اضافه کنیم خوبه:
    $chars[] = array('!', '!', '!', '!');

    دیگه مشکلات دیگه اش رو نمیدونم. ولی هر چی هست از برنامه های دیگه ای که دیدم بهتره.
    متشکرم.

    آموزش tkinter به زبان ساده

    اولين كتابي كه نوشتم : کتاب آموزش php به زبان ساده :
    http://barnamenevisi.blogsky.com/1391/01/06/post-96/

    لینک های آموزشی جدید را دریافت کنید: http://pachenar.ir/rss-learn.php

  35. #28
    کاربر دائمی آواتار hamidhassas
    تاریخ عضویت
    آذر 1389
    محل زندگی
    شیراز
    پست
    577
    تشکر کردن
    102
    124 بار تشکر شده در 63 پست

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

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


    <?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=به نام خداوند جان و خرد

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

  36. #29
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    باید با ctype یا iconv و... متن رو تبدیل به کدگذاری یونیکد کنید. الان ANSI دریافت شده.
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  37. #30
    کاربر دائمی آواتار hamidhassas
    تاریخ عضویت
    آذر 1389
    محل زندگی
    شیراز
    پست
    577
    تشکر کردن
    102
    124 بار تشکر شده در 63 پست

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

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    باید با ctype یا iconv و... متن رو تبدیل به کدگذاری یونیکد کنید. الان ANSI دریافت شده.

    من بلد نیستم میشه راهنمایی کنید

  38. #31
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    2,676
    تشکر کردن
    1,637
    927 بار تشکر شده در 648 پست

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

    نقل قول نوشته شده توسط hamidhassas مشاهده تاپیک
    من بلد نیستم میشه راهنمایی کنید
    من فکر میکنم اون صفحه ای که شما باهاش مقدار رو ارسال میکنی مشکل داره. وگرنه برای من مشکلی نداشت. حتما توی اون صفحه از utf-8 استفاده نکردی.

    آموزش tkinter به زبان ساده

    اولين كتابي كه نوشتم : کتاب آموزش php به زبان ساده :
    http://barnamenevisi.blogsky.com/1391/01/06/post-96/

    لینک های آموزشی جدید را دریافت کنید: http://pachenar.ir/rss-learn.php

  39. #32
    کاربر دائمی آواتار hamidhassas
    تاریخ عضویت
    آذر 1389
    محل زندگی
    شیراز
    پست
    577
    تشکر کردن
    102
    124 بار تشکر شده در 63 پست

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

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    من فکر میکنم اون صفحه ای که شما باهاش مقدار رو ارسال میکنی مشکل داره. وگرنه برای من مشکلی نداشت. حتما توی اون صفحه از utf-8 استفاده نکردی.
    من utf-8 رو با تگ متا صدا زدم ولی نمیشه

  40. #33
    مدیر بخش آواتار MMSHFE
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    9,182
    تشکر کردن
    396
    14,711 بار تشکر شده در 5,933 پست

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

    خود فایل رو هم با کدگذاری UTF-8 without BOM ذخیره کنید.
    باران که می بارد، همه پرندگان بدنبال سرپناهند ولی عقاب برای خیس نشدن، از ابرها بالاتر می رود
    این دیدگاه شماست که تفاوت را خلق می کند
    ===================================
    گذشته استمراری، حال ساده را از انسان می گیرد
    ===================================
    خرید پکیج تصویری فارسی آموزش PHP از پایه تا پیشرفته
    خرید پکیج تصویری فارسی آموزش فریمورک Yii
    آموزش علوم كامپیوتر بصورت رایگان در nCIS
    قوانین سایت برنامه نویس

  41. کاربرانی که به خاطر مطلب مفید MMSHFE از وی تشکر کرده‌اند:


  42. #34
    کاربر دائمی آواتار hamidhassas
    تاریخ عضویت
    آذر 1389
    محل زندگی
    شیراز
    پست
    577
    تشکر کردن
    102
    124 بار تشکر شده در 63 پست

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

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    خود فایل رو هم با کدگذاری UTF-8 without BOM ذخیره کنید.
    کردم ولی کلا از کار افتاد

بوک مارک کردن این تاپیک

بوک مارک کردن این تاپیک

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

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