zoukankan      html  css  js  c++  java
  • PHP解决imagecopymerge合成图片后黑色边角的问题

    PHP解决合成图片后黑色边角的问题

    1有黑色边角的图

    2  生成的没有黑色边角的图

    3  生成算法

       public function createOnlineCourseCertsImgFront($data=array())
        {
            $name = $data['name'];//姓名
            $idnum = $data['idnum'];//证书编号
            $validtime = $data['validtime'];//有效期
            $sex=$data['sex'];//性别
            $sex==1 && $sex='';
            $sex==2 && $sex='';
            $sex==0 && $sex='未知';
            $certtime=$data['certtime'];//证书开始时间
            $filename=$data['filename'];//文件名
            $path_2=$data['path_2'];//头像文件
            
                
            //背景图片
            $path_1 = ROOT_PATH . 'public/uploads/certsimg/online_frontbackground.png';
        
    
            //创建图片对象
            $image_1 = imagecreatefrompng($path_1);
         
            $image_2 = imagecreatefrompng($path_2);
        
     
            $background = imagecolorexact($image_1, 0, 0, 0);
            imagecolortransparent($image_1, $background);
            imagealphablending($image_1, false);
            imagesavealpha($image_1, true);
    
            //合成图片
            imagecopymerge($image_1, $image_2, 49, 111, 0, 0, imagesx($image_2), imagesy($image_2), 100);
        
            //设置文字颜色
            $black = imagecolorallocate($image_1, 0, 0, 0);
        
            //写的文字用到的字体
            $font = ROOT_PATH . 'public/uploads/certsimg/simfang.ttf';
        
            //在图片里插入文字$black
            imagettftext($image_1, 20, 0, 339, 130, $black,$font, $name);
            imagettftext($image_1, 20, 0, 555, 130, $black,$font, $sex);
            imagettftext($image_1, 20, 0, 339, 188, $black, $font, $idnum);
            imagettftext($image_1, 20, 0, 339, 243, $black, $font, $certtime);
            imagettftext($image_1, 20, 0, 339, 293, $black, $font, $validtime);
        
            //这是合成后的图片保存的路径
            $upload_dir = "public/uploads/certsimg/";
        
            imagepng($image_1, ROOT_PATH . $upload_dir . $filename . '.png');
        
            $finalurl='uploads/certsimg/'.$filename . '.png';
        
            return  $finalurl;
        
        }

    关键是红色的部分  如果没有红色的部分 生成的是图1   有了红色的部分生成的是图2

  • 相关阅读:
    测试Remoting服务端和客户端的双向通信
    对T4模板研究针对SQL SERVER的EF代码生成
    菜鸟级WinForm分页控件
    [小技术应用]框架下动态调用用户控件的模态弹出窗体
    根据数据库表动态添加菜单及打开窗体
    Windows Mobile 5.0下蓝牙移动打印测试
    Window Mobile/CE的PC端安装测试
    基于Dev控件,在WinForm下动态配置界面
    TortoiseSVN使用简介
    SQL的一些经典算法
  • 原文地址:https://www.cnblogs.com/baker95935/p/13185055.html
Copyright © 2011-2022 走看看