php图片加水印的小例子

发布时间:2021-01-17编辑:脚本学堂
本文分享一例php代码,用于为图片添加水印,可以设置水印图片的保存路径、水印的位置、透明度等,有需要的朋友参考学习下。

本节内容:
php为图片添加水印。

例子:
 

复制代码 代码示例:
<?php 
/**
 * 图片加水印(适用于png/jpg/gif格式)
 * 
 * @author flynetcn
 *
 * @param $srcImg    原图片
 * @param $waterImg  水印图片
 * @param $savepath  保存路径
 * @param $savename  保存名字
 * @param $positon   水印位置 
 *                   1:顶部居左, 2:顶部居右, 3:居中, 4:底部局左, 5:底部居右 
 * @param $alpha     透明度 -- 0:完全透明, 100:完全不透明
 * 
 * @return 成功 -- 加水印后的新图片地址
 *         失败 -- -1:原文件不存在, -2:水印图片不存在, -3:原文件图像对象建立失败
 *                 -4:水印文件图像对象建立失败 -5:加水印后的新图片保存失败
 * @编辑:www.jb200.com
 */ 
function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $positon=5, $alpha=30) 

    $temp = pathinfo($srcImg); 
    $name = $temp['basename']; 
    $path = $temp['dirname']; 
    $exte = $temp['extension']; 
    $savename = $savename ? $savename : $name; 
    $savepath = $savepath ? $savepath : $path; 
    $savefile = $savepath .'/'. $savename; 
    $srcinfo = @getimagesize($srcImg); 
    if (!$srcinfo) { 
        return -1;  //原文件不存在 
    } 
    $waterinfo = @getimagesize($waterImg); 
    if (!$waterinfo) { 
        return -2;  //水印图片不存在 
    } 
    $srcImgObj = image_create_from_ext($srcImg); 
    if (!$srcImgObj) { 
        return -3;  //原文件图像对象建立失败 
    } 
    $waterImgObj = image_create_from_ext($waterImg); 
    if (!$waterImgObj) { 
        return -4;  //水印文件图像对象建立失败 
    } 
    switch ($positon) { 
    //1顶部居左 
    case 1: $x=$y=0; break
    //2顶部居右 
    case 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; break; 
    //3居中 
    case 3: $x = ($srcinfo[0]-$waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; break; 
    //4底部居左 
    case 4: $x = 0; $y = $srcinfo[1]-$waterinfo[1]; break; 
    //5底部居右 
    case 5: $x = $srcinfo[0]-$waterinfo[0]; $y = $srcinfo[1]-$waterinfo[1]; break; 
    default: $x=$y=0; 
    } 
    imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $alpha); 
    switch ($srcinfo[2]) { 
    case 1: imagegif($srcImgObj, $savefile); break; 
    case 2: imagejpeg($srcImgObj, $savefile); break; 
    case 3: imagepng($srcImgObj, $savefile); break; 
    default: return -5;  //保存失败 
    } 
    imagedestroy($srcImgObj); 
    imagedestroy($waterImgObj); 
    return $savefile; 

 
function image_create_from_ext($imgfile) 

    $info = getimagesize($imgfile); 
    $im = null; 
    switch ($info[2]) { 
    case 1: $im=imagecreatefromgif($imgfile); break; 
    case 2: $im=imagecreatefromjpeg($imgfile); break; 
    case 3: $im=imagecreatefrompng($imgfile); break; 
    } 
    return $im; 
}

您可能感兴趣的文章:
php图片上加水印或文字的代码举例
php 图片操作类(图片加水印)
超级好用的php文件上传类(上传、缩略图、水印)
一个加强版的php水印代码
php图片加水印与上传图片加水印类
php为图片加中文水印的代码
php上传图片并打上透明水印的代码
php上传文件并添加文字与图片水印的代码
php 上传图片加水印且支持透明的代码