حل مشکل اضافه کردن متن فارسی روی عکس در php

معمولا هنگام استفاده از کتابخانه استاندارد GD در PHP برای اضافه کردن متن فارسی یا عربی روی تصویر بدلیل پشتیبانی نکردن این کتابخانه از زبان های راست به چپ مشکلات متعددی بوجود می آید. یکی از این مشکلات مانند شکل زیر می تواند جدا نمایش دادن کاراکتر ها و از چپ به راست نشان دادن آن ها باشد.

از چپ به راست و جدا نشان دادن حروف فارسی هنگام استفاده از GD در PHP

یا برخی اوقات هم مربعی نشان دادن حروف در عکس باشد که معمولا بدلیل عدم پشتیبانی فونت پیش فرض این کتابخانه از زبان فارسی است. مانند شکل زیر:

مربعی نشان دادن حروف فارسی روی عکس در GD PHP

امروز قرار راه حلی آسان برای رفع این مشکلات را ارائه کنیم. برای رفع این مشکلات کتابخانه کوچک و مناسبی در Github موجود است که می توانید با اضافه کردن آن به پروژه این مشکل را حل کنید. نام این کتابخانه GdFarsi هست که می توانید از لینک Github زیر فایل فشرده آن را دانلود کنید.

آدرس Github کتابخانه GdFarsi

بعد از دانلود یک فایل PHP با نام FarsiGD در آن موجود است که کافی است ابتدا آن را با دستور زیر به پروژه خود اضافه کنید.

require_once('./libs/FarsiGD.php');
$gd = new FarsiGD();

پس از آن کافی است با شیئی که از این کلاس تعریف کرده اید متغیری که متن خود را در آن ذخیره کرده اید را به فرمت صحیح در آورید با دستور زیر.

$text=$_GET["title"];
$tx = $gd->persianText($text, 'fa', 'normal');

در کد بالا $text یک متغیر است که به طور مثال متنی فارسی در آن ذخیره است. خط دوم این مقدار را بافرمتی صحیح در متغیر $tx مقدار دهی می کند و شما می توانید از آن در اضافه کردن به تصویر به شکل صحیح استفاده کنید. مانند کد زیر.

imagettftext($bg_im, $font_size, 0, $text_startX, $text_startY, $white, $font_path, $tx);

تمامی متغیر های متد بالا نکته ای برای ذکر ندارد غیر از $font_path که حتما باید مسیر فونتی باشد که از زبان فارسی پشتیبانی می کند وگرنه حروف به صورت مربعی نمایش داده خواهد شد به همین دلیل مانند کد زیر فونتی مثل b homa.ttf را در مسیر پروژه قرار دهید و آن را مقدار دهی کنید.

$font_path = './fonts/B Homa.ttf';

نهایتا خروجی صحیح این کار مانند تصویر زیر خواهد بود که حروف فارسی را به شکل صحیح روی تصویر با استفاده از کتابخانه GD و GdFarsi نمایش خواهد داد.

نمایش صحیح حروف فارسی روی عکس با Gd PHP

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *