美文网首页
实例:给图片加水印

实例:给图片加水印

作者: z1挂东南 | 来源:发表于2018-09-03 08:21 被阅读86次

    2018.09.03
    .
    .
    只有一个文件,代码如下:

    <?php
    
    //用户上传的图片
    $dest = 'test.jpg';
    //公司的logo
    $src = 'logo.jpg';
    $op = 50;
    $pos = 4;
    
    water($dest, $src, $pos, $op);
    /**
    *@param1 dest string 用户图片
    *@param2 src string 公司logo
    **@param3 int logo的位置 1:左上角,2:右上角,3:左下角,4:右下角,5:中间
    **@param4 op int 透明度
    */
    
    function water($dest, $src, $pos=3, $op=60){
    
        $info_dest = getimagesize($dest);
        $info_src = getimagesize($src);
    
        //把已有的图片读取到画布中
        $img_dest = create_from($dest);
        $img_src = create_from($src);
    
        switch($pos){
            case 1:
                $d_x = 0;
                $d_y = 0;
                break;
            case 2:
                $d_x = $info_dest[0]-$info_src[0];
                $d_y = 0;
                break;
            case 3:
                $d_x = 0;
                $d_y = $info_dest[1]-$info_src[1];
                break;
            case 4:
                $d_x = $info_dest[0]-$info_src[0];
                $d_y = $info_dest[1]-$info_src[1];
                break;
            case 5:
                $d_x = ($info_dest[0]-$info_src[0])/2;
                $d_y = ($info_dest[1]-$info_src[1])/2;
                break;  
        }
    
        //制作水印 imagecopymerge(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h, pct)
        imagecopymerge($img_dest, $img_src, $d_x, $d_y, 0, 0, $info_src[0], $info_src[1], $op);
    
        header('Content-Type:image/jpeg');
        imagejpeg($img_dest);
    }
    
    function create_from($file){
        $info = getimagesize($file); //获取文件信息
    
        switch($info['mime']){
            case 'image/jpeg':
                $img = imagecreatefromjpeg($file);
                break;
            case 'image/png':
                $img = imagecreatefrompng($file);
                break;
            case 'image/gif':
                $img = imagecreatefromgif($file);
                break;
        }
        return $img;
    }

    相关文章

      网友评论

          本文标题:实例:给图片加水印

          本文链接:https://www.haomeiwen.com/subject/wdzvwftx.html