【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

相关文章

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils