• php 图片添加文字水印 以及 图片合成(微信快码传播)


    1、图片添加文字水印:

    $bigImgPath = 'backgroud.png';
        $img = imagecreatefromstring(file_get_contents($bigImgPath));
    
        $font = 'msyhl.ttc';//字体
        $black = imagecolorallocate($img, 0, 0, 0);//字体颜色 RGB
    
        $fontSize = 20;   //字体大小
        $circleSize = 60; //旋转角度
        $left = 50;      //左边距
        $top = 150;       //顶边距
    
        imagefttext($img, $fontSize, $circleSize, $left, $top, $black, $font, 'Rhythmk| 坤');
    
        list($bgWidth, $bgHight, $bgType) = getimagesize($bigImgPath);
        switch ($bgType) {
            case 1: //gif
                header('Content-Type:image/gif');
                imagegif($img);
                break;
            case 2: //jpg
                header('Content-Type:image/jpg');
                imagejpeg($img);
                break;
            case 3: //jpg
                header('Content-Type:image/png');
                imagepng($img);
                break;
            default:
                break;
        }
        imagedestroy($img);
    

      效果:

        

    2、图片合成

            $bigImgPath = 'backgroud.png';
            $qCodePath = 'qcode.png';
    
            $bigImg = imagecreatefromstring(file_get_contents($bigImgPath));
            $qCodeImg = imagecreatefromstring(file_get_contents($qCodePath));
    
            list($qCodeWidth, $qCodeHight, $qCodeType) = getimagesize($qCodePath);
            // imagecopymerge使用注解
            imagecopymerge($bigImg, $qCodeImg, 200, 300, 0, 0, $qCodeWidth, $qCodeHight, 100);
    
            list($bigWidth, $bigHight, $bigType) = getimagesize($bigImgPath);
    
    
            switch ($bigType) {
                case 1: //gif
                    header('Content-Type:image/gif');
                    imagegif($bigImg);
                    break;
                case 2: //jpg
                    header('Content-Type:image/jpg');
                    imagejpeg($bigImg);
                    break;
                case 3: //jpg
                    header('Content-Type:image/png');
                    imagepng($bigImg);
                    break;
                default:
                    # code...
                    break;
            }
    
            imagedestroy($bigImg);
            imagedestroy($qcodeImg);
    

    函数注解:

    imagecopymerge()

    imagecopymerge() 函数用于拷贝并合并图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

    语法:

    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 )

    参数说明:

    dst_im 目标图像
    src_im 被拷贝的源图像
    dst_x 目标图像开始 x 坐标
    dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
    src_x 拷贝图像开始 x 坐标
    src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
    src_w (从 src_x 开始)拷贝的宽度
    src_h (从 src_y 开始)拷贝的高度
    pct 图像合并程度,取值 0-100 ,当 pct=0 时,实际上什么也没做,反之完全合并。

     

     效果图:

  • 相关阅读:
    MQTT的优势
    http与https与tcp区别
    中科芯CKS-MBT30数据采集网关帮助工程师实现PLC远程上下载,减少出差成本
    CKS-MAT30远程程序上下载 支持欧姆龙西门子等PLC 远程下载、监控
    西门子S7以太网通讯协议
    DK云网关与普通DTU之间的区别
    腾讯笔试题
    二叉搜索树
    哈希,链接法解决冲突
    将16进制字符串转化为10进制数输出
  • 原文地址:https://www.cnblogs.com/rhythmK/p/5426050.html
Copyright © 2020-2023  润新知