• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP图片等比缩放和增加Logo水印代码详解和注释

php 搞代码 4年前 (2022-01-23) 20次浏览 已收录 0个评论

PHP图片等比缩放和增加Logo水印代码详解和注释

//PHP图片的等比缩放和增加Logo水印  /** * 等比缩放函数(以保存的方式实现) * @param string $picName 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){    $imageNewageInfo = getimageNewageSize($picName); //获取图片的基本信息         $w = $imageNewageInfo[0];//获取宽度    $h = $imageNewageInfo[1];//获取高度         //获取图片的类型并为此创建对应图片资源        switch($imageNewageInfo[2]){        case 1: //gif            $imageNew = imageNewagecreatefromgif($picName);            break;        case 2: //jpg            $imageNew = imageNewagecreatefromjpeg($picName);            break;        case 3: //png            $imageNew = imageNewagecreatefrompng($picName);            break;        default:            die("图片类型错误!");    }         //计算缩放比例    if(($maxx/$w)>($maxy/$h)){        $b = $maxy/$h;    }else{        $b = $maxx/$w;    }         //计算出缩放后的尺寸    $nw = floor($w*$b);    $nh = floor($h*$b);         //创建一个新的图像源(目标图像)    $nimageNew = imageNewagecreatetruecolor($nw,$nh);             //执行等比缩放    imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h);         //输出图像(根据源图像的类型,输出为对应的类型)    $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息    $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];    switch($imageNewageInfo[2]){        case 1:            imageNewagegif($nimageNew,$newpicName);            break;        case 2:            imageNewagejpeg($nimageNew,$newpicName);            break;        case 3:            imageNewagepng($nimageNew,$newpicN<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p><strong>搞代gaodaima码</strong>ame);            break;    }    //释放图片资源    imageNewagedestroy($imageNew);    imageNewagedestroy($nimageNew);    //返回结果    return $newpicName;} //调用echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_");  //你自己要添加的图片   /** * 为一张图片添加上一个logo图片水印(以保存的方式实现) * @param string $picName 被处理图片源 * @param string $logo 水印图片 * @param string $pre 处理后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg */function imageNewageUpdateLogo($picName,$logo,$pre="n_"){    $picNameimageNewageInfo = getimageNewageSize($picName); //获取图片源的基本信息    $logoimageNewageInfo = getimageNewageSize($logo); //获取logo图片的基本信息    //var_dump($logoimageNewageInfo);    //根据图片类型创建出对应的图片源    switch($picNameimageNewageInfo[2]){        case 1: //gif            $imageNew = imageNewagecreatefromgif($picName);            break;        case 2: //jpg            $imageNew = imageNewagecreatefromjpeg($picName);            break;        case 3: //png            $imageNew = imageNewagecreatefrompng($picName);            break;        default:            die("图片类型错误!");    }    //根据logo图片类型创建出对应的图片源    switch($logoimageNewageInfo[2]){        case 1: //gif            $logoimageNew = imageNewagecreatefromgif($logo);            break;        case 2: //jpg            $logoimageNew = imageNewagecreatefromjpeg($logo);            break;        case 3: //png            $logoimageNew = imageNewagecreatefrompng($logo);            break;        default:            die("logo图片类型错误!");    }          //执行图片水印处理                    源图的高-logo图的高       源图的宽-logo图的宽    imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]);         //输出图像(根据源图像的类型,输出为对应的类型)    $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息    $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];    switch($picNameimageNewageInfo[2]){        case 1:            imageNewagegif($imageNew,$newpicName);            break;        case 2:            imageNewagejpeg($imageNew,$newpicName);            break;        case 3:            imageNewagepng($imageNew,$newpicName);            break;    }    //释放图片资源    imageNewagedestroy($imageNew);    imageNewagedestroy($logoimageNew);    //返回结果    return $newpicName;} //测试//echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png");  //对应添加你的图片,和你的logo水印图片 OK

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP图片等比缩放和增加Logo水印代码详解和注释
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址