Image watermark with PHP

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 graphic

if(!$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 image
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $opacity);


// print image to screen
header("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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值