


PHP techniques for uploading multiple pictures and adding watermarks_PHP tutorial
function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")
{
$isWaterImage = FALSE;
$formatMsg = "This file format is not supported yet. Please use image processing software to convert the image to GIF, JPG, or PNG format.";
//Read watermark file
if(!empty($waterImage) && file_exists($waterImage))
{
$isWaterImage = TRUE;
$water_info = getimagesize($ waterImage); //What is obtained is an array
$water_w = $water_info[0];//Get the width of the watermark image
$water_h = $water_info[1];//Get the height of the watermark image
switch($water_info[2])//Get the format of the watermark image
{
case 1:$water_im = imagecreatefromgif($waterImage);break; //Convert the image into an encoding process that can be recognized by PHP
case 2:$water_im = imagecreatefromjpeg($waterImage);break; //Convert the image into an encoding process that can be recognized by PHP
case 3:$water_im = imagecreatefrompng($waterImage);break; //Convert the image Encoding process recognized by PHP
default:die($formatMsg);
}
}
//Read background image
if(!empty($groundImage) && file_exists($ groundImage))
{
$ground_info = getimagesize($groundImage);
$ground_w = $ground_info[0];//Get the width of the background image
$ground_h = $ground_info[1]; //Get the height of the background image
switch($ground_info[2])//Get the format of the background image
{
case 1:$ground_im = imagecreatefromgif($groundImage);break;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
case 3:$ground_im = imagecreatefrompng($groundImage);break;
default:die($formatMsg);
}
}
else
{
die("The picture that needs to be watermarked does not exist! ");
}
//Watermark position
if($isWaterImage)//Picture watermark
{
$w = $water_w;
$h = $water_h;
$label = "Picture";
}
else//Text watermark
{
$temp = imagettfbbox(ceil($textFont*2.5),0,"c:/windows/fonts /stcaiyun.ttf",$waterText);//Get the range of text using TrueType font
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7];
unset($temp);
$label = "text area";
}
if( ($ground_w<$w) || ($ground_h<$h ) )
{
echo "The length or width of the image that needs to be watermarked is smaller than the watermark ".$label.", so the watermark cannot be generated! ";
return;
}
switch($waterPos)
{
case 0://random
$posX = rand(0,($ground_w - $w)) ;
$posY = rand(0,($ground_h - $h));
break;
case 1://1 is top left
$posX = 0;
$posY = 0;
break;
case 2://2 is top-centered
$posX = ($ground_w - $w) / 2;
$posY = 0;
break;
case 3://3 is the top right
$posX = $ground_w - $w;
$posY = 0;
break;
case 4://4 is the middle left
$posX = 0;
$posY = ($ground_h - $h) / 2;
break;
case 5://5 is centered in the middle
$posX = ($ground_w - $w) / 2;
$posY = ($ground_h - $h) / 2;
break;
case 6://6 is middle right
$posX = $ground_w - $ w;
$posY = ($ground_h - $h) / 2;
break;
case 7://7 is bottom left
$posX = 0;
$posY = $ground_h - $h;
break;
case 8://8 is bottom centered
$posX = ($ground_w - $w) / 2;
$posY = $ground_h - $ h;
break;
case 9://9 is bottom right
$posX = $ground_w - $w;
$posY = $ground_h - $h;
break;
default://random
$posX = rand(0,($ground_w - $w));
$posY = rand(0,($ground_h - $h));
break ;
}
//Set the color mixing mode of the image
imagealphablending($ground_im, true);
if($isWaterImage)//Image watermark
{
imagecopy($ground_im , $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//Copy watermark to target file
}
else//Text watermark
{
if( ! empty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2));
$G = hexdec(substr( $textColor,3,2));
$B = hexdec(substr($textColor,5));
}
else
{
die("The watermark text color format is incorrect !");
}
imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
}
//Generate watermarked image
@unlink($groundImage);
switch($ground_info[2])//Get the format of the background image
{
case 1:imagegif($ground_im, $groundImage);break; //Create a picture in gif format
case 2:imagejpeg($ground_im,$groundImage);break; //Create a picture in jpeg format
case 3:imagepng($ground_im,$groundImage );break; //Create a picture in png format
default:die($errorMsg);
}
//Release memory
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im);
unset($ground_info);
imagedestroy($ground_im);
}
?>
< ?php
for ($i=0;$i
$upfile="./img/" .($i+1).".png";//Change the path here to yours
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$upfile)) {
imageWaterMark($upfile,9,"./shuiyin.png","Made By Chenduan",5,"#FF0000");
/*
* Function: Image watermark (watermark supports images or text)
* imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")
* Parameters:
* $groundImage background image, that is, the image that needs to be watermarked, currently only supports GIF, JPG, and PNG formats;
* $waterPos watermark position, there are 10 states, 0 is a random position;
* 1 is the top On the left, 2 means top-centered, 3 means top-centered;
* 4 means middle-centered, 5 means middle-centered, 6 means middle-right;
* 7 means bottom-centered, 8 means bottom-centered, 9 To the bottom and right;
* $waterImage image watermark, that is, the image used as a watermark, currently only supports GIF, JPG, PNG formats;
* $waterText text watermark, that is, text as a watermark, supports ASCII code , does not support Chinese;
* $textFont text size, the value is 1, 2, 3, 4 or 5, the default is 5;
* $textColor text color, the value is a hexadecimal color value, the default is #FF0000(red);
*/
echo "
echo "th".($i+ 1)."The picture operation was successful
";
}
else{
echo "No.".($i+1)."The picture could not be uploaded
";
}
}
?>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an
