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

  • 相关阅读:
    _00020 妳那伊抹微笑_谁的异常最诡异第一期之 SqlServer RSA premaster secret error
    <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
    ubuntu 14.04 桌面版关闭图形界面
    (一)简单工厂模式
    JS学习笔记-数据类型
    【C#】报表制作<机房重构>
    [leetcode][math] Add Digits
    hibernate(三) 一对多映射关系
    hibernate(二)一级缓存和三种状态解析
    Hibernate(五)之一对多&多对一映射关系
  • 原文地址:https://www.cnblogs.com/baker95935/p/13185055.html
Copyright © 2011-2022 走看看