این سایت به کاربران امکان می‌دهد پرسشهای خود در زمینه طراحی وب با PHP و jQuery و CSS و MySQL و ... را مطرح یا به پرسش‌های دیگران پاسخ دهند.

4,268 پرسش

4,923 پاسخ

8,952 نظر

2,694 کاربر

افزودن متن فارسی به تصویر و ذخیره آن

+2 رای
با سلام دوستان من می خواهم  بر روی یک عکس با فرمت jpg در اندازه 168x253 یک متنی را با فونت B Titr بنویسم و با یک نام رندوم ذخیره کنم لطفاً راهنمایی بفرمایید
پرسیده شد 2 سال پیش در توابع توسط saeid تازه‌وارد (امتیاز: 2,110) 1 علامت
بازنگری شد 2 سال پیش توسط علیرضا

3 پاسخ

+2 رای
سلام
نوشتن متن انگلیسی روی تصویر، کار ساده‌ای است و تابع آن در php موجود است.
منتها با توجه به نام فونتی که در صورت سوال ذکر کردید، ظاهرا شما می‌خواهید متنی با زبان فارسی روی تصویر بنویسید که خب کتابخانه تصویری زبان پی اچ پی (GD) آن را ساپورت نمی‌کند چون هر حرفی حالات مختلفی دارد (مثلا حرف ب دارای 4 حالت است: ب، بـ، ـب، ـبـ) لذا لازم است یک replace قبل از آن انجام شود.
جهت نوشتن متن فارسی و حتی دارای إعراب و تشدید، پروژه‌های متعددی انجام شده است که شناخته‌ترین آنها برای بنده persian GD است:
http://persiangd.berlios.de/doku.php
پاسخ داده شد 2 سال پیش توسط علیرضا استاد (امتیاز: 186,110)
@علیرضا ممنونم آیا راهنمایی هم دارد ؟
@علیرضا من هر کاری می کنم نمی توانم متن را با سایز تصویر هماهنگ کنم و چند لغت به بیرون از تصویر می افتد و در ضمن من می خواهم بر روی یک تصویر که دارای پس ضمینه هست ایم متن رو بنویسم می خواهم مثلاً 20 تا تصویر پس ضمینه باشه و هر بار در چرخه For یکی به رندوم انتخاب و روی آن متن به صورتی که از کناره ها بیرون نزنه نوشته بشود ممنون می شوم راهنمایی بفرماید
@saeid من 5 سال پیش با این برنامه کار کردم و الآن یادم نیست اما تا اونجا که خودم اطلاع دارم، اینجور پروژه‌ها می‌تونن فقط تبدیل متن رو انجام بدن و موقعیت رو لازم خودتون حساب کنید و محل شروع نوشتن رو طوری انتخاب کنید که متن نزنه بیرون و فکر کنم بهترین راهش آزمایشه چون فونت‌هایی که عرض کاراکتر ثابت باشه توی فارسی خیلی کمه.
@علیرضا
چرا اینا اینقدر با سوادن؟
نستعلیق رو نوشته نستلیق
خیلی زشته تو صفحه اول وبسایت اون هم تو نمونه
مگر اینکه تو محل اونا اینطوری بنویسن
;)
–1 رای
سلام،فکر میکنم بتونید از امثال Captcha استفاده کنید،فقط به جای اعداد و حروف تصادفی از حملات موردنیازتون استفاده کنید،برای مثال:
<?php

session_start();

$string = '';

for ($i = 0; $i < 4; $i++) {
    // this numbers refer to numbers of the ascii table (lower case)
    $string .= chr(rand(48, 57));
}

$_SESSION['rand_code'] = $string;

$dir = 'fonts/';

$image = imagecreatetruecolor(170, 60);
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 100, 100, 90); 
$white = imagecolorallocate($image, 255, 255, 255);

imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir."acmesai.ttf", $_SESSION['rand_code']);

header("Content-type: image/png");
imagepng($image);

?>


در کد بالا میتونید با تغییر مقدار متغیر string متن مورد نظرتون رو استفاده کنید،همچنین میتونید با استفاده از متُد POST نوشته وارده در فیلد رو روی عکس ایمپورت کنید،برای نام عکس هم بد نیست نگاهی به مقالات زیر بندازید:

http://w3schools.com/php/php_file.asp
http://w3schools.com/php/php_ref_filesystem.asp

و بعد باز استفاده از فرمول RANDOM که با rand تغریف ذخیره کنید
پاسخ داده شد 2 سال پیش توسط DeBuger (امتیاز: 250)
@DeBuger همانطور که اشاره شد تابع imagettftext در php برای نوشتن متن روی عکس است و یکی از کاربردهای آن هم تولید کپچا است.
اما تابع imagettftext با متن فارسی مشکل دارد و آن را به صورت جدا جدا نمایش می‌دهد.
+1 رای
آموزش:نوشتن متن انگلیسی در یک فیلد و تبدیل آن به JPG:کد:
<form action="img.php" method="get"/>
<input type="text" name="t"/>
<input type="submit"/>
</form>

و در img.php کد زیر رو قرار بدید:
<?php
$dir = 'fonts/';
$image = imagecreatetruecolor(170, 60);
$color = imagecolorallocate($image, 100, 100, 90);
imagettftext ($image, 30, 0, 10, 40, $color, $dir."nassim.ttf", $_GET['t']);
header("Content-type: image/png");
imagepng($image);
?>

توجه: شما باید فونت "نسیم" رو داشته باشید و اون رو در فولدری به نام fonts قرار بدید.
فونت نسیم:http://www.uploadbaz.com/f7pgivg9jxpr
پاسخ داده شد 2 سال پیش توسط DeBuger (امتیاز: 250)
@DeBuger ممنون دوست عزیز یعنی با فونت نسیم می توان فارسی نوشت ؟
@saeid
خیر،فونت نسیم فقطیه مثال از امثال فونت ها بود،اطلاعای درباره فارسی نویسی روی عکس ندارم،
همچنین یه نگاهی به اینجا هم بندازید:
http://persiangd.berlios.de/doku.php

لطفا جهت درج پاسخ ، وارد شوید ویا ثبت نام نمایید.