/*
- * Function: PHP image watermark (watermark supports picture or text)
- Parameters
- * $groundimage background image, that is, need to add a watermark image, temporarily only support gif,jpg,png format;
- * $waterPos watermark position, there are 10 kinds of states, 0 is a 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 right;
- * 7 for the bottom of the left, 8 for the bottom center, 9 for the bottom of the right;
- * $waterImage image watermark, that is, as a watermark image, temporarily only 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, value 1, 2, 3, 4 or 5, default is 5;
- * $textColor text color, value is hexadecimal color value, default is #ff0000 (red);
- *
- * Note: Support GD 2.0,support FreeType, gif Read, GIF Create, JPG, PNG
- * $waterImage and $waterText best not to use at the same time, choose one of them, priority to use the $waterImage.
- * When the $waterimage is valid, the parameters $waterstring, $stringFont, $stringColor are not effective.
- * The watermark image has the same file name as the $groundImage.
- * Author: longware @ 2004-11-3 14:15:13
- */
- function Imagewatermark ($groundImage, $waterPos =0, $waterImage = "", $waterText = "", $textFont =5, $textColor = "#FF0000 ″)
- {
- $isWaterImage = FALSE;
- $FORMATMSG = "Does not support this file format, please use the picture processing software to convert the picture to GIF, JPG, PNG format. ”;
- Read Watermark File
- if (!emptyempty ($waterImage) && file_exists ($waterImage))
- {
- $isWaterImage = TRUE;
- $water _info = getimagesize ($waterImage);
- $water _w = $water _info[0];//To obtain the width of the watermark picture
- $water _h = $water _info[1];//To obtain a high watermark image
- Switch ($water _info[2])//Get the format of the watermark picture
- {
- Case 1: $water _im = Imagecreatefromgif ($waterImage);
- Case 2: $water _im = Imagecreatefromjpeg ($waterImage);
- Case 3: $water _im = Imagecreatefrompng ($waterImage);
- Default:die ($FORMATMSG);
- }
- }
- Read background picture
- if (!emptyempty ($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 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 ("The picture that needs watermark does not exist!") ”);
- }
- Watermark Location
- if ($isWaterImage)//Picture watermark
- {
- $w = $water _w;
- $h = $water _h;
- $label = "Picture";
- }
- else//text watermark
- {
- $temp = Imagettfbbox (Ceil ($textFont), 0, "./cour.ttf", $waterText);//Get the 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 that needs to be watermarked is more than a 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 centered on the top
- $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 the middle left
- $posX = 0;
- $posY = ($ground _h-$h)/2;
- Break
- Case 5://5 centered in the middle
- $posX = ($ground _w-$w)/2;
- $posY = ($ground _h-$h)/2;
- Break
- Case 6://6 for the middle right
- $posX = $ground _w-$w;
- $posY = ($ground _h-$h)/2;
- Break
- Case 7://7 for 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 for 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
- }
- To set the color blending mode of an 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 target file
- }
- else//text watermark
- {
- if (!emptyempty ($textColor) && (strlen ($textColor) ==7))
- {
- $R = Hexdec (substr ($textColor,));
- $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));
- }
- Create a picture after a watermark
- @unlink ($groundImage);
- Switch ($ground _info[2])//Get the format of the background picture
- {
- Case 1:imagegif ($ground _im, $groundImage);
- Case 2:imagejpeg ($ground _im, $groundImage);
- Case 3:imagepng ($ground _im, $groundImage);
- Default:die ($ERRORMSG);
- }
- Freeing memory
- if (Isset ($water _info)) unset ($water _info);
- if (Isset ($water _im)) Imagedestroy ($water _im);
- unset ($ground _info);
- Imagedestroy ($ground _im);
- }
- -bbs.it-home.org
- $id =$_request[' id '];
- $num = count ($_files[' userfile ' [' name ']);
- Print_r ($_files[' userfile ');
- Print_r ($_files[' userfile ' [' name ']);
- Echo $num;
- echo "
”;
- if (Isset ($id)) {
- for ($i =0; $i < $id; $i + +) {
- if (Isset ($_files) &&!emptyempty ($_files[' userfile ']) && $_files[' userfile ' [' Size ']>0]
- {
- $uploadfile = "./". Time (). " _ ". $_files[' UserFile '][name][$i];
- echo "
”;
- Echo $uploadfile;
- if (copy ($_files[' userfile ' [' tmp_name '] [$i], $uploadfile))
- {
- echo "OK
”;
- Text watermark
- Imagewatermark ($uploadfile, 5, "", "HTTP://www.lvye.info", 5, "#cccccc");
- Image watermark
- $waterImage = "logo_ok1.gif";//Watermark Picture Path
- Imagewatermark ($uploadfile, 9, $waterImage);
- echo "";
- }
- Else
- {
- echo "Fail
”;
- }
- }
- }
- }
- ?>
Copy Code |