/*
* Function: php image watermark (watermark supports images or text) * Parameters: * $groundimage background image, that is, the image that needs to be watermarked, temporarily Only supports gif, jpg, png formats; * $waterPos watermark position, there are 10 states, 0 is a random position; * 1 is top left, 2 is top center, 3 is top right; * 4 is middle left , 5 means middle center, 6 means middle right; * 7 means bottom left, 8 means bottom center, 9 means bottom right; * $waterImage image watermark, that is, the image used as a watermark, currently only supports GIF , JPG, PNG format; * $waterText text watermark, that is, text is used 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); * * Note: Support GD 2.0, Support FreeType, GIF Read, GIF Create, JPG, PNG * $ It is best not to use waterImage and $waterText at the same time. Just choose one of them, and use $waterImage first. * When $waterImage is valid, the parameters $waterString, $stringFont, and $stringColor are not valid. * The file name of the watermarked image is the same as $groundImage. * Author: longware @ 2004-11-3 14:15:13 */ 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(!emptyempty($waterImage) && file_exists($waterImage)) { $isWaterImage = TRUE; $water_info = getimagesize($waterImage); $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; case 2:$water_im = imagecreatefromjpeg($waterImage);break; case 3:$water_im = imagecreatefrompng($waterImage);break; default:die($formatMsg); } } //Read the background image 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 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*5),0,"./cour.ttf",$waterText);//Get 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 longer than the watermark ".$label." 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 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( !emptyempty($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)); } //生成水印后的图片 @unlink($groundImage); switch($ground_info[2])//取得背景图片的格式 { case 1:imagegif($ground_im,$groundImage);break; case 2:imagejpeg($ground_im,$groundImage);break; case 3:imagepng($ground_im,$groundImage);break; default:die($errorMsg); } //释放内存 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 ”;
//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc“);
//图片水印
$waterImage=”logo_ok1.gif”;//水印图片路径
imageWaterMark($uploadfile,9,$waterImage);
echo “ ”;
}
else
{
echo “Fail ”;
}
}
}
}
?>
for($a=0;$a<$id;$a++){ echo “文件: ”;
}
?>
复制代码