首先, 修改include/function目录下的common.php, 在upload_image函数下增加一个函数叫mark_image, 内容如下:
function mark_image($image_size, $path, $markimgpath) {
$iinfo = getimagesize($path,$iinfo);
$nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black = imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
switch ($iinfo[2]){
case 1:
$simage = imagecreatefromgif($path);break;
case 2:
$simage = imagecreatefromjpeg($path);break;
case 3:
$simage = imagecreatefrompng($path);break;
case 6:
$simage = imagecreatefromwbmp($path);break;
default:
die("不支持的文件类型");exit;
}
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
$simage1 = imagecreatefrompng($markimgpath);
imagecopy($nimage,$simage1,40,40,0,0,263,58);
imagedestroy($simage1);
switch ($iinfo[2]){
case 1:
imagejpeg($nimage, $path);break;
case 2:
imagejpeg($nimage, $path);break;
case 3:
imagepng($nimage, $path);break;
case 6:
imagewbmp($nimage, $path);break;
}
imagedestroy($nimage);
imagedestroy($simage);
}
第二步, 在upload_image函数的 $z = $_FILES[$input]; 行下增加
$filename = $z["tmp_name"]; $image_size = getimagesize($filename);
第三步, 在upload_image函数的 move_uploaded_file($z['tmp_name'], $path); 行下增加
mark_image($image_size, $path, IMG_ROOT .'/logo.png'); // logo.png 就是水印图片你可以生成自己的水印图片放到static目录下即可
经过第三步之后, upload_image函数如下:
function upload_image($input, $image=null, $type='team', $scale=false) {
$year = date('Y'); $day = date('md');
$n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$input];
$filename = $z["tmp_name"];
$image_size = getimagesize($filename);
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
RecursiveMkdir( IMG_ROOT . '/' . "{$type}/{$year}/{$day}" );
$image = "{$type}/{$year}/{$day}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
RecursiveMkdir( dirname(IMG_ROOT .'/' .$image) );
$path = IMG_ROOT . '/' .$image;
}
if ($type=='user') {
Image::Convert($z['tmp_name'], $path, 48, 48, Image::MODE_CUT);
}
else if($type=='team') {
move_uploaded_file($z['tmp_name'], $path);
mark_image($image_size, $path, IMG_ROOT .'/logo.png');
}
if($type=='team' && $scale) {
$npath = preg_replace('#(\d+)\.(\w+)$#', "\\1_index.\\2", $path);
Image::Convert($path, $npath, 190, 120, Image::MODE_CUT);
}
return $image;
}
return $image;
}
第四步, 修改根目录下的upload.php文件,在file_put_contents($target, $data);和move_uploaded_file($upfile['tmp_name'],$target);行的下面增加
$image_size = getimagesize($target); mark_image($image_size, $target, IMG_ROOT .'/logo.png');
结束, 上传这两个文件和你的水印图片到服务器就ok了.
如果你想直接获得文件:
upload.php: 下载
common.php: 下载
logo.png: 
评论关闭。