نوشتن متن فارسی روی تصویر با PHP ( تک خطی )

سلام

در PHP امکان نوشتن متن روی تصاویر وجود داره .

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

طبق معمول PHP با فارسی مشکل داره و الان مجبوریم از FarsiGD استفاده کنیم .

توی این کد ابتدا تعداد space رو میشمریم و میفهمیم که حدودا چند حرف فارسی نوشته شده و بر اساس اون جایگاه متن رو روی عکس کامل تنظیم میکنیم.

من روی ۲ و ۳ space اینکار رو انجام دادم . شما میتونید اضافه و کم کنید.

در این اسکریپت از WideImage استفاده شده که برای اینکار کافیه. فانکشن زیر ۲ ورودی از شما میگیره اولی متنی که قراره روی تصویر نشون بده و دومی آدرس تصوری اصلی که قرار متن روش نمایش داده بشه.

شما میتونید فونت رو هم عوض کنید من اینجا از Yekan استفاده کردم. در نهایت هم تصویر ساخته شده رو توی فولدر up دخیره میکنه با اسم test.jpg

شما میتونید برای اینکه اسم تکراری نشه و کپی نشه روی تصویر قبلی از متد های کاراکتر و عدد های تصادفی مثل rand() یا uniqid() و یا حتی time() استفاده کنید.

function setName($name,$photoName)
{
    include 'lib/WideImage.php';
    include 'FarsiGD.php';
    $space = substr_count($name, ' ');
    if($space >= 2) {
        $left = '+120';
        $top = '+70';
    } elseif ($space == 1) {
        $left = '+150';
        $top = '+65';
    }
    $bg = WideImage::load($photoName);
    $final= $bg ->resize(400, 400);
    $canvas = $final ->getCanvas();
    $canvas->useFont('./Yekan.ttf', 20, $final->allocateColor(000, 000, 000));
    $x=(new FarsiGD)->persianText($name,'fa', 'normal');
    $canvas->writeText("left $left", "top $top",$x);
    $final->saveToFile("up/test.jpg");
}
setName($_GET['name'],'image.jpg');

شما میتونید کل کد نوشتن متن روی تصویر با PHP رو از اینجا دانلود کنید
برای اطلاعات بیشتر از WideImage میتونید به سایتش مراجعه کنید : http://wideimage.sourceforge.net

2 دیدگاه

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

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