在if (!empty($_files) && $upload_files)
有一个move_uploaded_file()
函数,正是上传图片的源头方法,在他成功运行将图片成功上传后,再加入水印方法即可。
if (!empty($_files) && $upload_files) { .... move_uploaded_file($tempfile, $targetfile); //一定要在move_uploaded_file()之后添加水印,因为之前图片还没有上传 //===========================水印图片.s $src_path = 'mark.png'; $dst_path = $targetfile; //创建图片的实例 $dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); //获取水印图片的宽高 list($src_w, $src_h) = getimagesize($src_path); //获取要加水印图片的宽高 list($dst_w, $dst_h) = getimagesize($dst_path); //将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果 //imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50); //如果水印图片本身带透明色,则使用imagecopy方法 imagecopy($dst, $src, ($dst_w - $src_w - 10), ($dst_h - $src_h - 10), 0, 0, $src_w, $src_h); //输出图片 list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); switch ($dst_type) { case 1://gif header('content-type: image/gif'); imagegif($dst, $dst_path); break; case 2://jpg header('content-type: image/jpeg'); imagejpeg($dst, $dst_path, 100); break; case 3://png header('content-type: image/png'); imagepng($dst, $dst_path, 100); break; default: break; } imagedestroy($dst); imagedestroy($src); //===========================水印图片.e .... }
如对本文有疑问, 点击进行留言回复!!
20.7.17 笔记算数运算符 复合运算符重载 比较运算重载 多态 设计原则 类的单一职责 依赖倒置 组合复用原则 里氏替换 迪米特法则 矩阵转置原理
网友评论