افزودن یک عکس بر روی یک عکس دیگر (watermark – stamp)، در PHP

افزودن یک عکس بر روی یک عکس دیگر (watermark - stamp)، در PHP

فرض کنید که دو عکس داریم و می خواهیم یک عکس بر روی عکس دیگر قرار داده شود. مثلا فرض کنید که کاربران در سایت شما، تصویر آپلود می کنند و شما قصد دارید که لوگوی (logo) سایت خود را که به صورت یک عکس می باشد، بر روی تصاویر آپلود شده توسط کاربران قرار بدهید. برای این منظور، می توانیم از کدهای PHP استفاده کنیم. دقت کنید که در کدهای PHP ، از توابع مربوط به کتابخانه GD استفاده خواهیم کرد که در شماره های جدید PHP وجود دارد، البته خیلی نگران نباشید چون دیگر اکثر سرورها، از جدیدترین نسخه های PHP استفاده می کنند.

فرض کنید که عکس اصلی دارای نام image.jpeg باشد و عکس لوگوی سایت، دارای نام logo.png باشد و هر دوی آنها را در همان فولدر حاوی صفحه PHP قرار داده باشیم، کدهای PHP زیر را می نویسیم :

<?php

$image_name=’image.jpeg’;

$logo_name=’logo.png’;

$im_1 = imagecreatefromjpeg($image_name);

$im_2 = imagecreatefrompng($logo_name);

echo “<img src=\””.$image_name.”\”>”;

$marge_right = ۱۰;

$marge_bottom = ۱۰;

$sx = imagesx($im_2);

$sy = imagesy($im_2);

imagecopy($im_1, $im_2, imagesx($im_1) – $sx – $marge_right, imagesy($im_1) -$sy – $marge_bottom, ۰, ۰, imagesx($im_2), imagesy($im_2));

$second_image_name=’image_with_logo.png’;

imagepng($im_1, $second_image_name);

echo “<br /><br />”;

echo “<img src=\””.$second_image_name.”\”>”;

imagedestroy($im_1);

imagedestroy($im_2);

?>

عکس اصلی به صورت زیر می باشد :

افزودن یک عکس بر روی یک عکس دیگر (watermark - stamp)، در PHP

و عکس لوگو (logo – طرح) که می خواهیم بر روی عکس قبلی قرار بگیرد، به صورت زیر است :

افزودن یک عکس بر روی یک عکس دیگر (watermark - stamp)، در PHP

بعد از اجرای کدها، یک عکس با نام image_with_logo.png درون همان فولدر حاوی فایل PHP شامل کدها، ساخته می شود که به آن، طرح (watermark – stamp – logo) مورد نظرمان افزوده شده است، یعنی به صورت زیر :

افزودن یک عکس بر روی یک عکس دیگر (watermark - stamp)، در PHP

شرح کدهای PHP :

برای باز کردن عکس های با پسوند jpg و jpeg و ذخیره اطلاعات آنها در حافظه، تابع imagecreatefromjpeg و برای عکس های با پسوند png ، تابع imagecreatefrompng به کار می رود :

$im_1 = imagecreatefromjpeg($image_name);

$im_2 = imagecreatefrompng($logo_name);

تابع imagecopy برای قرار دادن لوگو بر روی عکس دیگر به کار رفته است. از تابع imagecopy ، به صورت زیر استفاده کرده ایم :

 

imagecopy($im_1, $im_2, imagesx($im_1) – $sx – $marge_right, imagesy($im_1) -$sy – $marge_bottom, ۰, ۰, imagesx($im_2), imagesy($im_2));

 

تابع imagepng برای ساخت یا ذخیره (save) یک عکس با فرمت PNG به کار می رود :

 

imagepng($im_1, $second_image_name);

تابع imagedestroy برای آزاد کردن حافظه اشغال شده توسط اطلاعات عکس، به کار می رود (اطلاعات عکس را از حافظه پاک می کند) :

imagedestroy($im_1);

imagedestroy($im_2);

بازدید: 15

نظر خودتون رو بنویسید.

avatar
  اشتراک  
به من وقتی خبر بده که: