PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > 工作总结

PHP编程:ThinkPHP打水印及设置水印位置的方法

管理员 2025-02-18
工作总结
12

《PHP编程:ThinkPHP打水印及设置水印位置的方法》要点:
本文介绍了PHP编程:ThinkPHP打水印及设置水印位置的方法,希望对您有用。如果有疑问,可以联系我们。
 

相关主题:thinkphp教程

本文实例讲述了ThinkPHP打水印及设置水印位置的方法.分享给大家供大家参考,具体如下:PHP实例

最近在用Thinkphp的打水印的功能,发现只能打在左下角. PHP打水印功还是很容易的,最要是用到
PHP实例

代码如下:
bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上.两图像将根据 pct 来决定合并程度,其值范围从 0 到 100.当 pct = 0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明.PHP实例

水印demo图:PHP实例


我需要把水印打到图片的真中间,查看Thinkphp代码.发现,作者居然是写死了,我只能做一个修改PHP实例

/*** 为图片添加水印* @static public* @param string $source 原文件名* @param string $water 水印图片* @param string $$savename 添加水印后的图片名* @param string $postion 水印的具体位置 leftbottom rightbottom lefttop righttop center <新增>* @param string $alpha 水印的透明度* @return void*/static public function water($source, $water, $savename=null,$postion="center", $alpha=80) {//检查文件是否存在if (!file_exists($source) || !file_exists($water))return false;//图片信息$sInfo = self::getImageInfo($source);$wInfo = self::getImageInfo($water);//如果图片小于水印图片,不生成图片if ($sInfo["width"] < $wInfo["width"] || $sInfo['height'] < $wInfo['height']) return false; //建立图像 $sCreateFun = "imagecreatefrom" . $sInfo['type']; $sImage = $sCreateFun($source); $wCreateFun = "imagecreatefrom" . $wInfo['type']; $wImage = $wCreateFun($water); //设定图像的混色模式 imagealphablending($wImage, true); //图像位置,默认为右下角右对齐 $posArr = $this->WaterPostion($postion,$sInfo,$wInfo); //新增  //生成混合图像  imagecopymerge($sImage, $wImage, $posArr[0], $posArr[1], 0, 0, $wInfo['width'], $wInfo['height'], $alpha);  //输出图像  $ImageFun = 'Image' . $sInfo['type']; //如果没有给出保存文件名,默认为原图像名 if (!$savename) {   $savename = $source;   @unlink($source);  } //保存图像  $ImageFun($sImage, $savename);   imagedestroy($sImage); } private function WaterPostion($postion,$sInfo,$wInfo) {   $posY = $sInfo["height"] - $wInfo["height"];   $posX = $sInfo["width"] - $wInfo["width"];  switch($postion) {   case "rightbottom":    return array($posX,$posY);   break;   case "leftbottom":    return array($wInfo["width"],$posY);   break;   case "lefttop":    return array($wInfo["width"],$wInfo["height"]);   break;   case "righttop":    return array($posX,$wInfo["height"]);   break;   case "center":    return array($posX/2,$posY/2);  break;  }}

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》.PHP实例

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助.PHP实例



希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部