Image watermark with PHP

来源:互联网 发布:宏观数据日历 编辑:程序博客网 时间:2024/06/10 19:52

Toprevent quality images being stolen, we can use PHP to watermarkweb-images in popular formats like GIF/PNG/JPEG. We print a transparentgif-image on a jpeg-photo in this tutorial. For best results I prefergif than png, because some png formats require extra functions to printa transparent image. We can convert this script to a batch-watermarkereasily to watermark photo albums/galleries with multiple pictures byputting code in a loop or create a function.

Steps:

  1. Load both images
  2. Get size of both images
  3. Copy watermark to main image
  4. Print image to screen



PHP functions:
imagecreatefromgif
imagecreatefromjpeg
getimagesize
imagecopymerge
header
imagejpeg
imagedestroy


Watermark image:




Main image:




PHP Code:

<?php  $main_img = "Porsche_911_996_Carrera_4S.jpg"; // main big photo / picture$watermark_img= "watermark.gif"; // use GIF or PNG, JPEG has no tranparency support$padding = 3; // distance to border in pixels for watermark image$opacity= 100;// image opacity for transparent watermark$watermark = imagecreatefromgif($watermark_img); // create watermark$image = imagecreatefromjpeg($main_img); // create main graphicif(!$image || !$watermark) die("Error: main image or watermark could not be loaded!");$watermark_size = getimagesize($watermark_img);$watermark_width = $watermark_size[0];  $watermark_height = $watermark_size[1];  $image_size = getimagesize($main_img);  $dest_x = $image_size[0] - $watermark_width - $padding;  $dest_y = $image_size[1] - $watermark_height - $padding;// copy watermark on main imageimagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $opacity);// print image to screenheader("content-type: image/jpeg");   imagejpeg($image);  imagedestroy($image);  imagedestroy($watermark);  



Example images:

Watermarked image with 10% opacity




Watermarked image with 50% opacity




Watermarked image with 100% opacity