php图片添加文字

该代码段展示了如何在PHP中实现将文字添加到图片上的功能。它使用了`imagefttext`函数来在指定位置添加文字,并提供了两个示例:在两张不同的图片上添加姓名和身份证号。此外,代码还包含了保存处理后图片的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用方法

public function make(){
        //第一页
        $textArr1 = [];
        //图片后缀
        $type = 3;
        //页数
        $page = 1;
        //图片
        $bigImgPath1 = 'images/parttimejob/part_time_job_1.png';
        $ip = new i_parttimejob_Model();

        // 乙方real_name
        $textArr1['real_name']['text'] = 'aaaaaaa';
        $textArr1['real_name']['fontSize'] = 35;
        $textArr1['real_name']['left'] = 1300;
        $textArr1['real_name']['top'] = 430;

        // 身份证idcard
        $textArr1['idcard']['text'] = 'bbbbbbbb';
        $textArr1['idcard']['fontSize'] = 35;
        $textArr1['idcard']['left'] = 1380;
        $textArr1['idcard']['top'] = 530;
        $this->textInImg($type, $bigImgPath1, $textArr1, $student_id, $page);

        //第二页
        $page = 2;
        //图片
        $bigImgPath2 = 'images/parttimejob/part_time_job_2.png';
        // 姓名
        $textArr2['real_name']['text'] = '11111';
        $textArr2['real_name']['fontSize'] = 30;
        $textArr2['real_name']['left'] = 530;                                                                   
        $textArr2['real_name']['top'] = 550;
        // 性别
        $textArr2['sex']['text'] = '0';
        $textArr2['sex']['fontSize'] = 30;
        $textArr2['sex']['left'] = 1600;
        $textArr2['sex']['top'] = 550;
        $this->textInImg($type, $bigImgPath2, $textArr2, $student_id, $page);
  }

/**
     * 图片加文字
     *
     *   $fontSize = 45;   //字体大小
     *   $circleSize = 0;  //旋转角度
     *   $left = 2050;       //左边距
     *   $top = 330;       //顶边距
     */
    public function textInImg($type, $bigImgPath, $textArr, $s_id, $page) {
        //被加字的图片
        $img = imagecreatefromstring(file_get_contents($bigImgPath));
		//一定要有对应的字体文件
        $font = '/var/www/font/MSYH.ttc';  
        //字体颜色 RGB
        $black = imagecolorallocate($img, 0,0,0);  
        //循环添加要写的字
        foreach($textArr as $j){
            //字体大小
            $fontSize = $j['fontSize']; 
            //旋转角度  
            $circleSize = 0;  
            //左边距
            $left = $j['left'];       
            //顶边距
            $top = $j['top'];       
            // 保存文件 git/jpg/png/bmp
            imagefttext($img, $fontSize, $circleSize, $left, $top, $black, $font, $j['text']);
        }
        list($bgWidth, $bgHight, $type) = getimagesize($bigImgPath);
        //保存位置,保存名称
        $savePath = tempnam("/images/parttimejob/partContract", "PC".$s_id."_".$page);
        switch($type)
        {
            case 1:
                imagegif($img, $savePath);
                break;
            case 2:
                imagejpeg($img, $savePath);
                break;
            case 3:
                imagepng($img, $savePath);
                break;
            case 6:
                imagewbmp($img, $savePath);
                break;
        }
        //将图像输出到浏览器或文件
        imagepng($img,"images/parttimejob/partContract"."/PC".$s_id."_".$page.".png");
        imagedestroy($img);
        return $savePath;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zsy16111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值