Thursday, 2008 October 30
نویسنده:
Hamid تعداد بازدید: 13392 بار
#آموزش PHP امتیاز متوسط: 4.7
نوشتن بر روی عکس با GD در PHP (کار با گرافیک در PHP)
گاهی اوقات نیاز میشود که شما با متنی را
به صورت عکس در صفحه وب خود به نمایش بگذارید.
به طور مثال، به جای استفاده از ده دکمه که
استایلی مشابه دارند، میتوانید یک دکمه بدون متن ایجاد کنید و متن روی آن را در ده
جای مختلف با استفاده از امکان GD در PHP درج کنید.
اولین قدم این است که ببینیم gd سرور ما
فعال است یا نه. اگر فعال نبود با مدیر سرور اگر ممکن است تماس بگیرید.
و اگر لوکال کار می کنید باید خودتان اگر فعال نیست فعال کنید. در easyphp در
پوشه apache فایل php.ini تغییر زیر را انجام دهید:
;extension=php_gd2.dll => extension=php_gd2.dll
یعنی سمی کالن که کامنت ساز است را از اول
خط بردارید. بعد ریست کنید easyphp را. در wamp می گویند خودش فعال است. من امتحان نکردم.
برای اینکه بفهمید آیا فعال است یا نه از تابع phpinfo استفاده کنید. به این
شکل:
<? 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); ?>
نتیجه کار، یک کادر مشکلی رنگ با ابعاد 150 در 30 خواهد شد که نوشتهای با رنگ
قرمز روی آن نوشته شده است:
شرح: خط اول که header است. خط دوم اندازه عکس با x و y آن...
خط سوم تعیین رنگ :عدد اولی میزان قرمز است که از صفر تا 255 جا دارد و بعدی
سبز و بعدی آبی.
خط چهارم بعد $im که در بالا ساخته شده . فواصل حروف و بعد x و y محل قرارگیری رشته
و بعد خود رشته و بعد رنگ نوشته. خطهای پنجم و ششم انجام عملیات و تخریب شی.
کد بالا عکسی با نام button.png را که به شکل زیر
است:
باز میکند و چنین حالتی را نتیجه خواهد داد:
شرح کد : خط اول که header است و کارش همین است که اعلام کرده. خط دوم که رشته نوشتنی را Hello world! اعلام کرده. خط سوم آدرس عکس و نامش را داده.(در اینجا فقط نام عکس است) خط چهارم رنگ قرمز را با اعداد 255 و صفر و صفر ساخته ایم. عدد اولی میزان قرمز است
که از صفر تا 255 جا دارد و بعدی سبز و بعدی آبی. خط پنجم محاسبه x نوشته ما. کمی دقت کنید می فهمید چه فلسفه ای دارد این محاسبه. خط ششم یک سری مقدار ارسال شده که اولی فواصل حروف و دومی x و سومی y نوشته و بعد
خود نوشته و رنگی که باید نوشته شود که قرمز است. دو خط هفتم و هشتم هم انجام نهایی پروسه و تخریب شی.
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 توی حالت دوم از کجا اومده؟؟