برنامه نویسی

آموزش ساخت عکس با PHP

آموزش ساخت تصویر و تبدیل متن به عکس با PHP

ساخت عکس با PHP امکان پذیر است، در این مقاله روش ایجاد عکس به کمک کد نویسی با PHP را آموزش خواهیم داد، همراه داتیس نتورک باشید.

آموزش ساخت تصویر و تبدیل متن به عکس با PHP

ساخت عکس با PHP

استفاده از توابع تصاویر از کتابخانه GD داخل هسته php , آسان ترین راه برای ساخت تصویر با php به همراه متن و بصورت داینامیک است.

در بعضی مواقع شما نیاز دارید که یک تصویری را در مموری و بدون ذخیره سازی (on the fly) ایجاد و متن دلخواه را داخل آن قرار بدید.

بنابراین می توانید یک تصویر تصادفی و داینامیک را با php ایجاد کنید.

حتما توجه کنید قبل از شروع, از نصب و فعال بودن کتابخانه GD اطمیمنان حاصل کنید (البته در اکثر سرور ها فعال است و با تابع phpinfo() می توانید بررسی کنید.)

در این آموزش PHP , قصد داریم به شما نحوه ساخت تصویر با php بصورت داینامیک را نشان بدیم.

کد مثال ما یک تصویر داینامیک را با PHP براساس تنظیمات مشخص شده, ایجاد می کند.

شما می توانید عرض, ارتفاع, رنگ پس زمینه و رنگ متن و خود متن را تغییر بدید.

ساخت تصویر با php بصورت داینامیک

کد زیر نحوه ساخت تصویر با php بصورت داینامیک را به شما نمایش می دهد.

توابع GD که در این آموزش استفاده اند بصورت زیر هستند:

  • imagecreate() – ساخت یک ریسورس تصویر خالی با سایزهای مشخص شده (width, height)
  • imagecolorallocate() – اختصاص دادن یک رنگ برای ریسورس عکس
  • imagettfbbox() – محاسبه پیکسلی محدوده باک برای نوشتن متن
  • imagettftext() – نوشتن (write) متن در تصویر با فونت با فرمت TrueType (ttf)
  • imagedestroy() – حذف ریسورس تصویر از حافظه سرور
  • imagepng() – ساخت تصویر PNG
  • ریسورس (resource) : آی دی پروسه ساخته تصویر در حافظه (memory) سیستم
// Specify font path
$font = 'fonts/verdana.ttf';

// Text font size
$font_size = 10;

// Get settings from URL
$setting = isset($_GET['s']) ? $_GET['s'] : "000_FFF_350_350";
$setting = explode("_", $setting);

$img = array();

// Define image width, height, and color
switch($n = count($setting)){
case $n > 4 :
case 3:
$setting[3] = $setting[2];
case 4:
$img['width'] = (int) $setting[2];
$img['height'] = (int) $setting[3];
case 2:
$img['background'] = $setting[];
$img['color'] = $setting[1];
break;
default:
list($img['background'], $img['color'], $img['width'], $img['height']) = array('F', '0', 100, 100);
break;
}
$background = explode(",",hex2rgb($img['background']));
$textColorRgb = explode(",",hex2rgb($img['color']));
$width = empty($img['width']) ? 100 : $img['width'];
$height = empty($img['height']) ? 100 : $img['height'];

// Get text from URL
$text = (string) isset($_GET['t']) ? urldecode($_GET['t']) : $width ." x ". $height;

// Create the image resource 
$image = @imagecreate($width, $height) or die("Cannot Initialize new GD image stream");

// Create image background
$background_color = imagecolorallocate($image, $background[], $background[1], $background[2]);

// Grab the width & height of the text box
$bounding_box_size = imagettfbbox($font_size, , $font, $text);
$text_width = $bounding_box_size[2] - $bounding_box_size[];
$text_height = $bounding_box_size[7]-$bounding_box_size[1];

// Text x&y coordinates
$x = ceil(($width - $text_width) / 2);
$y = ceil(($height - $text_height) / 2);

// Define text color
$text_color = imagecolorallocate($image, $textColorRgb[], $textColorRgb[1], $textColorRgb[2]);

// Write text to image
imagettftext($image, $font_size, , $x, $y, $text_color, $font, $text);

// Set the content type header - in this case image/png
header('Content-Type: image/png');

// Output the image
imagepng($image);

// Free up memory
imagedestroy($image);

// Convert color code to rgb
function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);

switch(strlen($hex)){
case 1:
$hex = $hex.$hex;
case 2:
$r = hexdec($hex);
$g = hexdec($hex);
$b = hexdec($hex);
break;
case 3:
$r = hexdec(substr($hex,,1).substr($hex,,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
break;
default:
$r = hexdec(substr($hex,,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
break;
}

$rgb = array($r, $g, $b);
return implode(",", $rgb); 
}

در ادامه آموزش ساخت عکس با PHP :

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
تنظیمات گزینه ها :

  • s–مشخص کردن رنگ پس زمینه و پیش زمینه تصویر, عرض و ارتفاع در query string .

مقادیر این گزینه باید با خط زیر (_) مشخص شوند.

بطور مثال : ۰۰۰_FFF_300_300

  • t – مشخص کردن هر متن دلخواه که قصد دارید روی تصویر قرار بگیرد.

نحوه استفاده از اسکرپت ساخت تصویر با php بصورت داینامیک

آدرس اسکریپت PHP را برای ساخت تصویر داینامیک به همراه تنظیمات مورد نیاز در مقدار src تگ img مشخص کنید.

<img src="create_image.php?s=000_FFF_350_350&t=Dynamic Image" >

در صورتی که قصد دارید متن فارسی را به تصویر اضافه کنید, آموزش تبدیل متن به عکس دنبال کنید.

جمع بندی

قابلیت ساخت عکس با php بصورت داینامیک در زمانی که قصد ایجاد تصاویر on the fly دارید بسیار کاربردی است.

اگر قصد دارید یک یک تصویر بدون پیش زمینه ایجاد کنید (transparent), پس مشخصه رنگ بکگراند را به کار نبرید.

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

داتیس نتورک را در شبکه های اجتماعی دنبال کنید.

مطالب مرتبط

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

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