PHP 给图片添加水印logo图片

亲测有用 ,直接上代码

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/2/28 0028
 * Time: 下午 4:37
 */
function watermark($source,$water,$postion=4,$path=''){
         //设置水印图片名称前缀 
         $waterPrefix=''; //as_  是否替换图片,替换图片则为空 另加图片的话天上
 
         //图片类型和对应创建画布资源的函数名
         $from=array(
         'image/gif'=>'imagecreatefromgif',
         'image/png'=>'imagecreatefrompng',
         'image/jpeg'=>'imagecreatefromjpeg',
         );
         //图片类型和对应生成图片的函数名
         $to=array(
         'image/gif'=>'imagegif',
         'image/png'=>'imagepng',
         'image/jpeg'=>'imagejpeg',
         );
 
         //获取原图和 水印图片信息数组
         $src_info=getimagesize($source);
         $water_info=getimagesize($water);
         //从数组中获取原图和水印图片的宽和高
         list($src_w,$src_h,$src_mime)=$src_info;
         list($wat_w,$wat_h,$wat_mime)=$water_info;
         //获取各图片对应的创建画布函数名
         $src_create_fname=$from[$src_info['mime']];
         $wat_create_fname=$from[$water_info['mime']];
         //使用可变函数来创建画布资源
         $src_img=$src_create_fname($source);
         $wat_img=$wat_create_fname($water);
 
         //水印位置
         switch($postion){
                 case 1://左上
                 $src_x=0;
                 $src_y=0;
                 break;
                 case 2://右上
                 $src_x=$src_w-$wat_w;
                 $src_y=0;
                 break;
                 case 3://中间
                 $src_x=($src_w-$wat_w)/2;
                 $src_y=($src_h-$wat_h)/2;
                 break;
                 case 4://左下
                 $src_x=0;
                 $src_y=$src_h-$wat_h;
                 break;
                 default ://右下
                 $src_x=$src_w-$wat_w;
                 $src_y=$src_h-$wat_h;
                 break;
         }
 
         //添加水印
         /**
         * @param resource $src_img 原图像资源
         * @param resource $wat_img 水印图像资源
         * @param int $src_x 水印图片在原图像中的横坐标
         * @param int $src_y 水印图片在原图像中的纵坐标
         * @param int $wat_w 水印图片的宽
         * @param int $wat_h 水印图片的高
         */
         imagecopy($src_img,$wat_img,$src_x,$src_y,0,0,$wat_w,$wat_h);
 
          //生成带水印的图片路径
         // $waterfile=$path.$waterPrefix.$source;  //新的带水印图片路径名称
          $waterfile=$waterPrefix.$source;  //我这是直接替换
 
 
         //获取输出图片格式的函数名
         $generate_fname=$to[$src_info['mime']];
         //判断将添加水印后的图片输出到指定目录是否正确
         if($generate_fname($src_img,$waterfile)){
                     //有条理地输出原图像与加水印后的图像
                     // echo "<table><tr><th>为图片添加水印</th></tr>";
 
                     // echo "<tr><td>原图像:</td><td><img src='".$source."'/></td></tr>";
 
                    echo "<tr><td>加水印后:</td><td><img src='".$waterfile."'/></td></tr></table>";
 
                    // var_dump($waterfile);
 
            }else{
 
             echo "输出水印图片到指定目录出错";
             return false;
 
             }
 
}
 
//使用变量保存原图片与水印图片路径
 
$source='php.png';
$water='logo.png';
 
//调用函数,显示原图与添加水印后的图片
watermark($source,$water,20,30);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值