【php】GD库生成属性标签图

2024-04-08 19:04
文章标签 php 生成 属性 标签 gd

本文主要是介绍【php】GD库生成属性标签图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 标签图生成方法
   public static function createLabelImage($labelList,$fileName=""){$initImageFun = function($width,$height){$image = imagecreatetruecolor($width, $height);$backgroundColor = imagecolorallocate($image, 255, 255, 255);imagefilledrectangle($image, 0, 0, $width, $height, $backgroundColor);return $image;};//是否包含中文字符$containsChineseFun = function ($str) {if (preg_match('/[\x{4e00}-\x{9fa5}]/u', $str)) {return true;} else {return false;}};//属性描述填充 超出长度自动换行$decFillImageFun = function($image,$textDesc2,&$yHeight,$textColor,$maxlen=15,$xDecStart=185,$fontSize=25){$fontDec = "./static/admin/font/msyh.ttc";$length2 = mb_strlen($textDesc2, 'UTF-8');$lenNum = ceil($length2/$maxlen);for($i=0;$i<$lenNum;$i++){$yHeightLen = $yHeight+50*$i;imagettftext($image, $fontSize, 0, $xDecStart, $yHeightLen, $textColor, $fontDec, mb_substr($textDesc2,$i*$maxlen,$maxlen));if($i == $lenNum-1){$yHeight = $yHeightLen;}}};//计算画布总高度$calculateHeightFun = function($labelList,$yHeightStart,$lengHeight){$totalHeight = $yHeightStart;foreach ($labelList as $row){$length2 = mb_strlen($row['desc'], 'UTF-8');$maxlen = 15;$lenNum = ceil($length2/$maxlen);$totalHeight += ($lenNum-1)*50 + $lengHeight;}return $totalHeight;};$fontSize = 25;$xTitleStart = 10;$lenHeight = 80;$yHeightStart = 50;$width = 700;$totalHeight = $calculateHeightFun($labelList,$yHeightStart,$lenHeight);$image = $initImageFun($width,$totalHeight);//创建画布handle$textColor = imagecolorallocate($image, 0, 0, 0);//字体文件 微软雅黑加粗$fontTitle = "./static/admin/font/msyhbd.ttc";$yHeight = $yHeightStart;foreach ($labelList as $row){$textTitle = $row['title'].":";imagettftext($image, $fontSize, 0, $xTitleStart, $yHeight, $textColor, $fontTitle, $textTitle);if($containsChineseFun($row['desc'])){$decFillImageFun($image,$row['desc'],$yHeight,$textColor);}else{$decFillImageFun($image,$row['desc'],$yHeight,$textColor,30);}$yHeight = $yHeight+$lenHeight;}//标签保存目录$imagePath = './static/storage/goods_label/';if (!file_exists($imagePath)) {mkdir($imagePath, 0777, true);}if(empty($fileName)){$fileName = time().'_'.rand(1000,9999);}$imageFullName = $imagePath.$fileName.'.jpg';imagepng($image, $imageFullName);imagedestroy($image);unset($yHeight);return $imageFullName;}
  • 调用示例
		$goodsLabel = [];$goodsLabel[] = ["title" => "IMEI/SN","desc"  => $info['is_rand_ship']?"随机发货":$info['barcode']];$goodsLabel[] = ["title" => "质检报告","desc"  => $checkList["verdict"]];$goodsLabel[] = ["title" => "包装清单","desc"  => $checkList["packlist"]];$fileName = $info['barcode'] ? $info['barcode'] : $info['goods_id'];\app\Common::createLabelImage($goodsLabel,$fileName);
  • 标签图片

在这里插入图片描述

这篇关于【php】GD库生成属性标签图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886289

相关文章

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取