Copy Code code as follows:
<?php
function Imagewatermark ($groundImage, $waterPos =0, $waterImage = "", $waterText = "", $textFont =5, $textColor = "#FF0000")
{
$isWaterImage = FALSE;
$FORMATMSG = "This file format is not supported, please use picture processing software to convert the picture to GIF, JPG, PNG format." ";
Read Watermark File
if (!empty ($waterImage) && file_exists ($waterImage))
{
$isWaterImage = TRUE;
$water _info = getimagesize ($waterImage); Gets an array of
$water _w = $water _info[0];//Gets the width of the watermark picture
$water _h = $water _info[1];//Gets the high watermark picture
Switch ($water _info[2])//Get the format of the watermark picture
{
Case 1: $water _im = Imagecreatefromgif ($waterImage); Convert a picture into a PHP-recognizable encoding process
Case 2: $water _im = Imagecreatefromjpeg ($waterImage); Convert a picture into a PHP-recognizable encoding process
Case 3: $water _im = Imagecreatefrompng ($waterImage); Convert a picture into a PHP-recognizable encoding process
Default:die ($FORMATMSG);
}
}
Reading background pictures
if (!empty ($groundImage) && file_exists ($groundImage))
{
$ground _info = getimagesize ($groundImage);
$ground _w = $ground _info[0];//Gets the width of the background picture
$ground _h = $ground _info[1];//get a high background picture
Switch ($ground _info[2])//Get the format of the background picture
{
Case 1: $ground _im = Imagecreatefromgif ($groundImage);
Case 2: $ground _im = Imagecreatefromjpeg ($groundImage);
Case 3: $ground _im = Imagecreatefrompng ($groundImage);
Default:die ($FORMATMSG);
}
}
Else
{
Die ("Need to watermark the picture does not exist!") ");
}
Watermark Location
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 a range of text that uses TrueType fonts
$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 picture you want to watermark is more than the watermark". $label. " Still small, unable to generate watermark! ";
Return
}
Switch ($waterPos)
{
Case 0://Random
$posX = rand (0, ($ground _w-$w));
$posY = rand (0, ($ground _h-$h));
Break
Case 1://1 for top left
$posX = 0;
$posY = 0;
Break
Case 2://2 for top center
$posX = ($ground _w-$w)/2;
$posY = 0;
Break
Case 3://3 for top right
$posX = $ground _w-$w;
$posY = 0;
Break
Case 4://4 for Central left
$posX = 0;
$posY = ($ground _h-$h)/2;
Break
Case 5://5 centered in middle
$posX = ($ground _w-$w)/2;
$posY = ($ground _h-$h)/2;
Break
Case 6://6 for Middle right
$posX = $ground _w-$w;
$posY = ($ground _h-$h)/2;
Break
Case 7://7 to bottom left
$posX = 0;
$posY = $ground _h-$h;
Break
Case 8://8 centered at bottom
$posX = ($ground _w-$w)/2;
$posY = $ground _h-$h;
Break
Case 9://9 to 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 blending mode of the image
Imagealphablending ($ground _im, true);
if ($isWaterImage)//Picture watermark
{
Imagecopy ($ground _im, $water _im, $posX, $posY, 0, 0, $water _w, $water _h);//copy watermark to destination 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 ("Watermark text color format is not correct!") ");
}
Imagestring ($ground _im, $textFont, $posX, $posY, $waterText, Imagecolorallocate ($ground _im, $R, $G, $B));
}
Picture after Watermark is generated
@unlink ($groundImage);
Switch ($ground _info[2])//Get the format of the background picture
{
Case 1:imagegif ($ground _im, $groundImage); Create a picture in GIF format
Case 2:imagejpeg ($ground _im, $groundImage); Create a picture in JPEG format
Case 3:imagepng ($ground _im, $groundImage); Create a picture in PNG format
Default:die ($ERRORMSG);
}
Free 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 <count ($_files[' userfile '] [' tmp_name ']); $i + +)
{
$upfile = "./img/". ($i + 1). ". PNG "//here is your path.
if (Move_uploaded_file ($_files[' userfile '] [' tmp_name '] [$i], $upfile)) {
Imagewatermark ($upfile, 9, "./shuiyin.png", "Made by Chenduan", 5, "#FF0000");
/*
* Function: Image watermark (watermark support picture or text)
* Imagewatermark ($groundImage, $waterPos =0, $waterImage = "", $waterText = "", $textFont =5, $textColor = "#FF0000")
Parameters
* $groundImage background picture, that is, the need to add a watermark picture, temporarily support gif,jpg,png format;
* $waterPos Watermark location, there are 10 kinds of states, 0 is random position;
* 1 for the top left, 2 for the top center, 3 for the top right;
* 4 for the middle of the left, 5 for the Middle center, 6 for the middle of the right;
* 7 for the bottom of the left, 8 for the bottom center, 9 for the bottom right;
* $waterImage image watermark, that is, as a watermark picture, temporarily support gif,jpg,png format;
* $waterText text watermark, that is, the text as a watermark, support ASCII code, does not support Chinese;
* $textFont text size, values are 1, 2, 3, 4, or 5, and the default is 5;
* $textColor The text color, the value is hexadecimal color value, the default is #ff0000 (red);
*/
echo "echo "First". ($i + 1). " Picture operation Success <br> ";
}
else{
echo "First". ($i + 1). " Picture upload not <br> ";
}
}
?>