-
//php watermark function
- 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 the watermark file
- if(!empty($waterImage) && file_exists($waterImage))
- {
- $isWaterImage = TRUE;
- $water_info = getimagesize($waterImage); //What you get 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 PHP-recognizable encoding process
- case 3:$water_im = imagecreatefrompng($waterImage);break; //Convert the image into PHP-recognizable encoding process
- default:die($formatMsg);
- }
- }
- //Read Get the 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("required The watermarked picture 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 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 image that needs to be watermarked is smaller than the watermark ".$label.", and 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 means top left
- $posX = 0;
- $posY = 0;
- break;
- case 2://2 means top center
- $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 means center left
- $posX = 0;
- $posY = ($ground_h - $h) / 2;
- break;
- case 5://5 means center center
- $posX = ($ground_w - $w ) / 2;
- $posY = ($ground_h - $h) / 2;
- break;
- case 6://6 is the 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 center
- $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) ; 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));
- }
- //The image after generating the watermark
- @unlink($groundImage);
- switch($ground_info[2])//Get the format of the background image
- {
- case 1:imagegif($ground_im,$groundImage);break; //Create an image 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 image upload code:
-
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 pictures 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 means top left, 2 means top center, 3 means top is on the right;
- * 4 is middle on the left, 5 is middle on the center, 6 is middle on the right;
- * 7 is bottom on the left, 8 is bottom on the center, 9 is bottom on the right;
- * $waterImage picture Watermark, that is, the image used as a watermark, currently only supports GIF, JPG, and PNG formats;
- * $waterText text watermark, that is, text is used as a watermark, supports ASCII code, does not support Chinese;
- * $textFont text size, 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 "No.".($i+1)."Picture operation successful
";
- }
- else{
- echo "No.". ($i+1)."Unable to upload picture
";
- }
- }
- ?>
Copy code
|