zoukankan      html  css  js  c++  java
  • 图像添加logo水印函数

     1 <?php
     2 //图像添加水印函数
     3 /**
     4     *为一张图片添加上一个logo水印(以保存新图片的方式实现)
     5     *@param string $picname  被缩放的处理图片源
     6     *@param int $logo  水印图片
     7     *@param string $pre 缩放后图片的前缀名
     8     *@return $string 返回后的图片名称() 如a.jpg->n.jpg
     9     *
    10 **/
    11      function imageUpdateLogo($picname,$logo,$pre="n_"){
    12         $picnameinfo=getimageSize($picname);//获取图片源的基本信息 
    13         $logoinfo=getimageSize($logo);//获取logo图片源的基本信息
    14         
    15         //根据图片类型创建出对应的图片源
    16         switch($picnameinfo[2]){
    17             case 1://gif
    18                   $im=imagecreatefromgif($picname);    
    19                   break;                  
    20             case 2://jpg
    21                   $im=imagecreatefromjpeg($picname);
    22                   break;
    23             case 3://png
    24                  $im=imagecreatefrompng($picname);  
    25                   break;
    26             default:
    27                  die("图像类型错误");
    28         }   //根据logo图片类型创建对应的图片源
    29         switch($logoinfo[2]){
    30             case 1://gif
    31                   $logoim=imagecreatefromgif($logo);    
    32                   break;                  
    33             case 2://jpg
    34                   $logoim=imagecreatefromjpeg($logo);
    35                   break;
    36             case 3://png
    37                  $logoim=imagecreatefrompng($logo);  
    38                   break;
    39             default:
    40                  die("图像类型错误");
    41         }
    42         //执行图片水印处理
    43         imagecopyresampled($im,$logoim,$picnaeinfo[0]=$logoinfo[0],$picnaeinfo[1]=$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]);
    44         //输出图像(根据源图像的类型,输出为对应的类型)
    45         $picinfo=pathinfo($picname);//解析源图像的名字和路径信息
    46         $newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"];
    47         switch($picnameinfo[2]){
    48             case 1:
    49                 imagegif($im,$newpicname);
    50                 break;
    51             case 2:
    52                 imagejpeg($im,$newpicname);
    53                 break;
    54             case 3:
    55                 imagepng($im,$newpicname);
    56                 break;                
    57         }
    58         //释放图片资源
    59         imagedestroy($im);
    60         imagedestroy($logoim);
    61         //返回结果
    62         return $newpicname;
    63      }
    64     // 测试成功
    65      echo    imageUpdateLogo("images/8.14.jpg","images/bg_00.jpg"); // 返回的结果为 images/n_8.14.jpg
    66 ?>
  • 相关阅读:
    vue指令参考
    jquery easyui 研究(一)Datagrid初始化设置
    HTML之响应协议
    HTTP协议之请求协议
    HTTP协议之HTTP概述
    Day18_函数定义_形参_实参_可变参数
    Day19_名称空间和作用域_函数的嵌套_函数第一类对象的使用_闭包函数
    跳转语句 break 和 continue
    JS中强制类型转换
    toString
  • 原文地址:https://www.cnblogs.com/kangshuai/p/4883974.html
Copyright © 2011-2022 走看看