zoukankan      html  css  js  c++  java
  • 图片添加水印

    <?php

     wather('3.jpg');

        //图片水印的封装

        function wather($soruce,$water='2.jpg',$position=9,$alpha = 100, $type = "jpeg",$path = 'test',$isRanName = true)

        {

            //打开图片

            $soruceRes = open($soruce);

            $waterRes = open($water);

            

            //获取图片的大小 算出位置

            $soruceInfo = getimagesize($soruce);

            $waterInfo = getimagesize($water);

            

            //算出位置

            switch($position)

            {

                case 1:

                    $x = 0;

                    $y = 0;

                    break;

                    

                case 2:

                    $x = ($soruceInfo[0] - $waterInfo[0]) / 2;

                    $y = 0;

                    break;

                

                case 3:

                    $x = $soruceInfo[0] - $waterInfo[0];

                    $y = 0;

                    break;

                

                case 4:

                    $x = 0;

                    $y = ($soruceInfo[1] - $waterInfo[1]) / 2;

                    break;

                

                case 5:

                    $x = ($soruceInfo[0] - $waterInfo[0]) / 2;

                    $y = ($soruceInfo[1] - $waterInfo[1]) / 2;

                    break;

                

                case 6:

                    $x = $soruceInfo[0] - $waterInfo[0];

                    $y = ($soruceInfo[1] - $waterInfo[1]) / 2;

                    break;

                

                case 7:

                    $x = 0;

                    $y = $soruceInfo[1] - $waterInfo[1];

                    break;

                

                case 8:

                    $x = ($soruceInfo[0] - $waterInfo[0]) / 2;

                    $y = $soruceInfo[1] - $waterInfo[1];

                    break;

                

                case 9:

                    $x = $soruceInfo[0] - $waterInfo[0];

                    $y = $soruceInfo[1] - $waterInfo[1];

                    break;

                

                default:

                    $x = mt_rand(0,$soruceInfo[0] - $waterInfo[0]);

                    $y = mt_rand(0,$soruceInfo[1] - $waterInfo[1]);

                    break;

            }

            //把x y 求出来的值供两张图片合并的时候用

            imagecopymerge($soruceRes,$waterRes,$x,$y,0,0, $waterInfo[0],$waterInfo[1],$alpha);

            

            $func = 'image'.$type;

            

            //处理path路径 是否启用随机文件名    

            if($isRanName)

            {

                $name = uniqid().'.'.$type;

            }else{

                $pathinfo = pathinfo($soruce);

                //var_dump($pathinfo);

                

                $name = $pathinfo['filename'].'.'.$type;

            }

            

            $path = rtrim($path,'/').'/'.$name;

            

            $func($soruceRes,$path);

            

            imagedestroy($soruceRes);

            

            imagedestroy($waterRes);

            

        }

        //打开图片的函数

        function open($path)

        {

            //判断文件是否存在

            if(!file_exists($path))

            {

                exit('文件不存在');

            }

            

            $info = getimagesize($path);

            //var_dump($info );

            

            switch($info['mime'])

            {

                case 'image/jpeg':

                case 'image/jpg':

                case 'image/pjpeg':

                    $res = imagecreatefromjpeg($path);

                    break;

                case 'image/png';

                    $res = imagecreatefrompng($path);

                    break;

                case 'image/gif':

                    $res = imagecreatefromgif($path);

                    break;

                case 'image/wbmp':

                case 'image/bmp':

                    $res = imagecreatefromwbmp($path);

                    break;

            }

            return $res;

        }

  • 相关阅读:
    消息中间件(MQ)
    java Lambda表达式
    【测试】性能测试及性能测试工具JMeter
    【Mysql】mysql集群方案之读写分离
    linux下mysql开启远程访问权限及防火墙开放3306端口
    MySQL事务提交与回滚
    MySQL索引
    MySQL视图
    MySQL事务
    MySQL参数化有效防止SQL注入
  • 原文地址:https://www.cnblogs.com/cqlb/p/9106253.html
Copyright © 2011-2022 走看看