PHP 代码:【复制】$uptypes = array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/gif'); //上传图片文件类型列表 $wFile = "a.jpg"; //取得文件路径 $waterimg = "hq.gif"; //水印图片路径 if (in_array($wFile['type'], $uptypes)) { //检查文件类型,若上传的文件为jpg或gif图片则加水印 if (strstr($wFile['type'], "jp")) { //若上传图片类型为jpg,pjpeg,jpeg,则用imagecreatefromjpeg读取目标文件 $im = imageCreatefromjpeg($wFile); $wfilew = imagesx($im); //取得图片的宽 $wfileh = imagesy($im); //取得图片的高 } else { //否则若上传图片类型为gif,则用imagecreatefromgif读取目标文件 $im = imageCreatefromgif($wFile); $wfilew = imagesx($im); //取得图片的宽 $wfileh = imagesy($im); //取得图片的高 } //设定混合模式 imagealphablending($im, true); //读取水印文件 $im2 = imagecreatefromgif($waterimg); //若水印图片为jpg,则此去可改为$im2 = imagecreatefromjpeg($waterimg) $waterw = imagesx($im2); //取得水印图片的宽 $waterh = imagesy($im2); //取得水印图片的高 //随机放水印到图片中 $randval = rand(0, 9); //在0-9之间产生随机数 if ($randval == 0 || $randval == 3 || $randval == 2 || $randval == 8 || $randval == 7) { //此处还可完善放更多位置 $wimgx = 5; $wimgy = 5; //放左上角 } else { $wimgx = $wfilew - 5 - $waterw; $wimgy = $wfileh - 5 - $waterh; //放右上角 } //拷贝水印到目标文件 imagecopy($im, $im2, $wimgx, $wimgy, 0, 0, $waterw, $waterh); //输出图片 if (strstr($wFile['type'], "jp")) { //同上 imagejpeg($im, $wFile); } else { imagegif($im, $wFile); } imagedestroy($im); imagedestroy($im2); }