PHP image watermark and upload image watermark PHP class

  • 2020-03-31 20:46:57
  • OfStack

A formal website, in the need to upload pictures, often will need to add their own website LOGO watermark on the picture. So how do you do this? First, let's look at the principle of watermarking PHP images.
Create the image by determining the file type, then copy it to the original image, fill in and create a rectangle for writing to imagestring() or to determine the watermark type in the original image program: string and add a graphics object to it. The following is a PHP image with watermark reproduced!

Parameter description:

$max_file_size: upload file size limit, BYTE
$destination_folder: upload file path
$watermark: whether there is an additional watermark (1 with watermark, others without watermark);

PHP image watermarking instructions:
1. Put the "extension=php_gd2.dll" line in the php.ini file; No, because we're going to use the GD library;
2. Change extension_dir = to the directory where your php_gd2.dll is located;
3. / / www.jb51.net/list/list_15_1.htm
PHP image with watermark code example:

 
//Upload a list of file types
$uptypes=array( 
'image/jpg', 
'image/jpeg', 
'image/png', 
'image/pjpeg', 
'image/gif', 
'image/bmp', 
'image/x-png' 
); 
$max_file_size=2000000; //Upload file size limit, BYTE
$destination_folder="uploadimg/"; //Upload file path
$watermark=1; //Whether to attach watermark (1 for watermark, other for no watermark);
$watertype=1; //Watermark type (1 for text,2 for picture)
$waterposition=1; //Watermark position (1 is the lower left corner,2 is the lower right corner
,3 For the upper left corner ,4 In the upper right corner ,5 For the center ); 
$waterstring="<A href="http://www.xplore.cn/"> 
http://www.xplore.cn/</A>"; //Watermark string
$waterimg="xplore.gif"; //The watermark image
$imgpreview=1; //Whether to generate the preview (1 is generated, others are not generated);
$imgpreviewsize=1/2; //Thumbnail scale
?> 
<html> 
<head> 
<title>ZwelL Picture upload program </title> 
<style type="text/css"> 
<!-- 
body 
{ 
font-size: 9pt; 
} 
input 
{ 
background-color: #66CCFF; 
border: 1px inset #CCCCCC; 
} 
--> 
</style> 
</head> 
<body> 
<form enctype="multipart/form-data" 
method="post" name="upform"> 
 Upload a file : 
<input name="upfile" type="file"> 
<input type="submit" value=" upload "><br> 
 The type of file allowed to be uploaded is :<?=implode(', ',$uptypes)?> 
</form> 
<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
if (!is_uploaded_file($_FILES["upfile"] 
[tmp_name])) 
//Is there a file
{ 
echo " The picture doesn't exist !"; 
exit; 
} 
$file = $_FILES["upfile"]; 
if($max_file_size <$file["size"]) 
//Check file size
{ 
echo " The file is too large !"; 
exit; 
} 
if(!in_array($file["type"], $uptypes)) 
//Check file types
{ 
echo " File type mismatch !".$file["type"]; 
exit; 
} 
if(!file_exists($destination_folder)) 
{ 
mkdir($destination_folder); 
} 
$filename=$file["tmp_name"]; 
$image_size = getimagesize($filename); 
$pinfo=pathinfo($file["name"]); 
$ftype=$pinfo['extension']; 
$destination = $destination_folder. 
time().".".$ftype; 
if (file_exists($destination) && 
$overwrite != true) 
{ 
echo " The file with the same name already exists "; 
exit; 
} 
if(!move_uploaded_file ($filename, 
$destination)) 
{ 
echo " Error moving file "; 
exit; 
} 
$pinfo=pathinfo($destination); 
$fname=$pinfo[basename]; 
echo " <font color=red> Uploaded successfully  
</font><br> The file name : 
<font color=blue>".$destination_folder. 
$fname."</font><br>"; 
echo "  The width of the :".$image_size[0]; 
echo "  The length of the :".$image_size[1]; 
echo "<br>  The size of the :".$file["size"]." bytes"; 
if($watermark==1) 
{ 
$iinfo=getimagesize($destination,$iinfo); 
$nimage=imagecreatetruecolor($image_size[0] 
,$image_size[1]); 
$white=imagecolorallocate($nimage,255,255,255); 
$black=imagecolorallocate($nimage,0,0,0); 
$red=imagecolorallocate($nimage,255,0,0); 
imagefill($nimage,0,0,$white); 
switch ($iinfo[2]) 
{ 
case 1: 
$simage =imagecreatefromgif($destination); 
break; 
case 2: 
$simage =imagecreatefromjpeg($destination); 
break; 
case 3: 
$simage =imagecreatefrompng($destination); 
break; 
case 6: 
$simage =imagecreatefromwbmp($destination); 
break; 
default: 
die(" Unsupported file types "); 
exit; 
} 
imagecopy($nimage,$simage,0,0,0,0, 
$image_size[0],$image_size[1]); 
imagefilledrectangle($nimage,1, 
$image_size[1]-15,80,$image_size[1],$white); 
switch($watertype) 
{ 
case 1: // add Watermark string
imagestring($nimage,2,3,$image_size[1]-15, 
$waterstring,$black); 
break; 
case 2: // add The watermark image
$simage1 =imagecreatefromgif("xplore.gif"); 
imagecopy($nimage,$simage1,0,0,0,0,85,15); 
imagedestroy($simage1); 
break; 
} 
switch ($iinfo[2]) 
{ 
case 1: 
//imagegif($nimage, $destination); 
imagejpeg($nimage, $destination); 
break; 
case 2: 
imagejpeg($nimage, $destination); 
break; 
case 3: 
imagepng($nimage, $destination); 
break; 
case 6: 
imagewbmp($nimage, $destination); 
//imagejpeg($nimage, $destination); 
break; 
} 
//Overwrite the original uploaded file
imagedestroy($nimage); 
imagedestroy($simage); 
} 
if($imgpreview==1) 
{ 
echo "<br> Preview picture :<br>"; 
echo "<ccid_file values="" width=". 
($image_size[0]*$imgpreviewsize)." 
height=".($image_size[1]*$imgpreviewsize);" 
echo " alt=" Preview picture :r The file name :". 
$destination."r Upload time :" />"; 
} 
} 
?> 
</body> 
</html> 


You can also refer to (link: #)

Related articles: