Jak dodać znak wodny do obrazka w PHP?

Znak wodny jest używany w obecnych czasach w większości sklepów internetowych, serwisach rozrywkowych itp. Jest to bardzo przydatna rzecz, jeżeli nie chcemy się dzielić z innymi naszymi pracami.
Osobiście zawsze przy okazji implementowania takiego modułu, korzystam z kodu znalezionego kiedyś w internecie.
Niestety nie mam pojęcia kto jest autorem tego kodu, ale skoro ta osoba upubliczniła swoje rozwiązanie to pozwalam sobie wrzucić je tutaj:


$photo_file = "3.png";
$INFO['max_img_width'] = '900';
 
$save_as_name   = 'nowy.png';
 
// Get the uploaded photos dimensions
$photo_size = getimagesize($photo_file);
$photo_width = $photo_size[0];
$photo_height = $photo_size[1];
 
$INFO['mark_x'] = $photo_width-118; // Parametry zmienne
$INFO['mark_y'] = $photo_height-109; // Parametry zmienne
 
// Create an image from the uploaded jpg
$photo_image = imagecreatefromjpeg($photo_file);
              
// Turn on Alpha Blending for the uploaded jpg
ImageAlphaBlending($photo_image, true);
              
// Check that the uploaded photo's width is larger than the
// requested fullsize photo width, otherwise use the original width
if ($photo_width > $INFO['max_img_width'])
{
        $pic_width = $INFO['max_img_width'];
}
else
{
        $pic_width = $photo_width;
}
              
// Calculate the the fullsize photo height based on the width
$pic_height = round($photo_height / ($photo_width / $pic_width));
              
// Create the new image
$pic_img = imagecreatetruecolor($pic_width,$pic_height);
imagecopyresized($pic_img,$photo_image,0,0,0,0,$pic_width,$pic_height,$photo_width,$photo_height);
              
// Define the watermark png file
$logo_file = "./watermark.png";
              
// Get the logo dimensions from the file
$logo_size = getimagesize($logo_file);
$logo_width = $logo_size[0];
$logo_height = $logo_size[1];
              
// Create an image from the watermark png file
$logo_image = ImageCreateFromPNG($logo_file);
              
// Copy watermark logo image onto the photo image
ImageCopy($pic_img, $logo_image, $INFO['mark_x'], $INFO['mark_y'], 0, 0, $logo_width, $logo_height);
 
// Define the location of the jpg file to be created
$pic_file = $save_as_name;
              
// Create and store a jpg at the fullsize pic quality from the resized image created
imagejpeg($pic_img, $pic_file, 100);
 
// Clean-up any other left over images
ImageDestroy($photo_image);
ImageDestroy($logo_image);
ImageDestroy($pic_img);
Oceń ten artykuł:

Komentarze

Napisz komentarz

Required for comment verification