نوشتن بر روی عکس با GD در PHP
نوشتن بر روی عکس با GD در PHP (کار با گرافیک در PHP)
گاهی اوقات نیاز میشود که شما با متنی را به صورت عکس در صفحه وب خود به نمایش بگذارید.
به طور مثال، به جای استفاده از ده دکمه که استایلی مشابه دارند، میتوانید یک دکمه بدون متن ایجاد کنید و متن روی آن را در ده جای مختلف با استفاده از امکان GD در PHP درج کنید.
اولین قدم این است که ببینیم gd سرور ما
فعال است یا نه.
اگر فعال نبود با مدیر سرور اگر ممکن است تماس بگیرید.
;extension=php_gd2.dll => extension=php_gd2.dll
یعنی سمی کالن که کامنت ساز است را از اول
خط بردارید. بعد ریست کنید easyphp را.
در wamp می گویند خودش فعال است. من امتحان نکردم.
<?
phpinfo();
?>
اگر فعال باشد داریم:

بعد از اینکه مطمئن شدید GD فعال است، دو حالت پیش میآید:
1- میخواهید عکسی ایجاد کنید و بر روی آن متنی را بنویسید.
2- میخواهید عکسی را باز کنید و بر روی آن بنویسید.
حالت اول:
مثال از مانوال php :
<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(150, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

شرح:
خط اول که header است.
خط دوم اندازه عکس با x و y آن...
خط چهارم بعد $im که در بالا ساخته شده . فواصل حروف و بعد x و y محل قرارگیری رشته
و بعد خود رشته و بعد رنگ نوشته.
خطهای پنجم و ششم انجام عملیات و تخریب شی.
حالت دوم:
مثال از مانوال php با کمی تغییر:
<?php
header("Content-type: image/png");
$string ="Hello world!";
$im = imagecreatefrompng("button.png");
$red = imagecolorallocate($im, 255, 0, 0);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 5, $string, $red);
imagepng($im);
imagedestroy($im);
?>
باز میکند و چنین حالتی را نتیجه خواهد داد:
شرح کد :
خط اول که header است و کارش همین است که اعلام کرده.
خط دوم که رشته نوشتنی را Hello world! اعلام کرده.
خط سوم آدرس عکس و نامش را داده.(در اینجا فقط نام عکس است)
خط چهارم رنگ قرمز را با اعداد 255 و صفر و صفر ساخته ایم. عدد اولی میزان قرمز است
که از صفر تا 255 جا دارد و بعدی سبز و بعدی آبی.
خط پنجم محاسبه x نوشته ما. کمی دقت کنید می فهمید چه فلسفه ای دارد این محاسبه.
خط ششم یک سری مقدار ارسال شده که اولی فواصل حروف و دومی x و سومی y نوشته و بعد
خود نوشته و رنگی که باید نوشته شود که قرمز است.
دو خط هفتم و هشتم هم انجام نهایی پروسه و تخریب شی.
موفق باشید؛
منبع مقاله (با کمی تغییر) : parsiforums.com
.
- مطالب مرتبط:
- چگونه گزینه های انتخاب شده یک CheckBox را با کمک inputهای hidden به صفحه سوم منتقل کنیم؟
- در آمدی بر زبان PHP
- آموزش نمایش تاریخ هجری شمسی با استفاده از PHP در صفحات وب
- نکاتی در مورد کار با URL در پی.اچ.پی (Working with addresses in PHP)
- چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟
- ------------
- آموزش نوشتن تدریجی با خط نستعلیق بر روی فیلم
- آموزش آپلود فایل از طریق یک فرم در پی.اچ.پی (How to upload a file in PHP)
- آموزش ساخت تیتراژ سریال «آخرین گناه» (تأثیر بكگراند بر روی نوشته)
- ایجاد فیلتر(Filter)های مختلف بر روی متن در Flash
- با PayPal آشنا شوید
ارسال سؤال یا نظر
1- محمد:
بوسیله: , در: Thursday, 2009 March 12-کد: 795
سلام .
یه کنفرانس ئر مورد کار گرافیکی و عکس در php دارم
که باید تحویل بدم .
هیچی از php نمیدونم .
اگه میشه یه مقاله اموزشی و دارین بهم برسونید
fanavari_m@yahoo.com
2- Gytyonline:
بوسیله: Gytyonline, در: Monday, 2010 August 09-کد: 1968
سلام
خیلی عالی بودش قبلا یکی از دوستام این کار رو با asp انجام داده بودش و من به فکر این بودم که چه طور میشه با Php هم این کار رو انجام دادش .
3- موسی:
بوسیله: , در: Tuesday, 2015 July 14-کد: 13585
با سلام و خسته نباشید.من یک مشکل دارم که امیدوارم کمکم کنید حلش کنم.
یک سایت دارم که درون آن یک تصویر گذاشتم و آدرس آنرا در اختیارکاربران گذاشته ام و میخواهم هرکاربر به آن آدرس مراجعه کرد ساعت و تاریخ و آی پی را در دیتابیس ذخیره کنم.البته تصویر هر روز عوض میشود و آدرس جدید برای کاربران ارسال میشود.ممنون
مثال:
http:www.mysite.comsunday_image_20150512.png
4- موسی:
بوسیله: , در: Thursday, 2015 July 16-کد: 13599
با سلام و خسته نباشید.من یک مشکل دارم که امیدوارم کمکم کنید حلش کنم.
یک سایت دارم که درون آن یک تصویر گذاشتم و آدرس آنرا در اختیارکاربران گذاشته ام و میخواهم هرکاربر به آن آدرس مراجعه کرد ساعت و تاریخ و آی پی را در دیتابیس ذخیره کنم.البته تصویر هر روز عوض میشود و آدرس جدید برای کاربران ارسال میشود.ممنون
مثال:
http:www.mysite.comsunday_image_20150512.png
5- هنر:
بوسیله: , در: Friday, 2015 October 09-کد: 13889
سلام کدهای من به این صورت هستن
$imgfilename="upload/".$imgfilename; // آدرس عکس
$imgselftext=iconv("gbk","utf-8",$imgselftext); //متن روی عکس
$fontfilename="images/ariblk.ttf"; // فونت استفاده شده
$fontsize=10; // سایز فونت
هیچ مشکلی باهاش ندارم تنها مشکل من در متن فارسی
وقتی متن انگلیسی وارد میکنم با فونت مناسب نشون داده میشه ولی وقتی فونت فارسی قرار میدم بازم متن فارسی روی عکس نشون داده نمیشه
البته در حقیقت نشون داده میشه ولی به صورت مربع مربع ( مربع نه علامت سوال )
مشکل چیه؟
من به این خط مشکوکم
$imgselftext=iconv("gbk","utf-8",$imgselftext
6- امیر:
بوسیله: , در: Tuesday, 2019 July 23-کد: 16065
چه جوری بهش فونت فارسی اضافه کنیم
7- مرتضی:
بوسیله: , در: Thursday, 2020 August 20-کد: 16396
اون 7.5 توی حالت دوم از کجا اومده؟؟