近期开发项目时,需要将网页中的统计报表生成为图片,并发送到钉钉群消息内。开发完成后如下总结。

下图是生成的伪效果图。

生成表格图片,主要分为 画图、画表格和填充数据等

画图:

$image = imagecreatetruecolor(图片宽度, 图片高度);

画表格:

imageline($image, x坐标1, y坐标1, x坐标2, y坐标2, 颜色);

填充数据:

imagettftext($image, 字体大小, 0,左偏移, 高度, 字体颜色, 字体, 数据);

额外:

文字加粗,可以多次执行 imagettftext 函数,比如执行3遍,即可实现加粗的效果

线条加粗,可用如下伪代码实现。

    /*** 绘制粗线*/public function imageLineThick($image, $x1, $y1, $x2, $y2, $color, $thick = 1){if ($thick == 1) {return imageline($image, $x1, $y1, $x2, $y2, $color);}$t = $thick / 2 - 0.5;if ($x1 == $x2 || $y1 == $y2) {return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);}$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q$a = $t / sqrt(1 + pow($k, 2));$points = array(round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),);imagefilledpolygon($image, $points, 4, $color);return imagepolygon($image, $points, 4, $color);}

最后附上源代码,有需要的朋友可以直接拉取使用。GitHub - revert-yang/GDTableContribute to revert-yang/GDTable development by creating an account on GitHub.https://github.com/revert-yang/GDTable

将Table数据记录生成表格图片相关推荐

  1. Python数据展示 - 生成表格图片

    前言 本文来讲讲如何用Python生成表格图片. 选一个合适库 Python最大的优点就是第三方库丰富,基本你要什么功能,都能找到别人实现好的库,几行代码一调用就完事了. Pytable 最先找到的是 ...

  2. java生成表格图片(请假条为例)

    java生成表格图片(请假条) package table;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; ...

  3. html中循环生成表格数据,动态生成表格(简单实现)

    1.案例分析 1.利用对象生成假的数据,用来模拟数据库的数据. 2.核心算法:利用createElement生成表格(生成 tr , td ),注意逻辑关系. 1.css代码 table th { w ...

  4. excel中如何et vb根据数据自动生成表格_如何实现excel与PPT互联互通(动态生成PPT)...

    因为经常要做周报.月报PPT,每次重复的的操作效率很低,这里整理了一套可以自动生成PPT的办法. 首先,大概思路是这样的.周报.月报这类经营分析类PPT一般都是由表格.图表以及分析文字组成的,整体结构 ...

  5. JAVA通过Graphics2D生成表格图片

    目录 一.背景 二.效果图 三.主要类 四.环境要求 五.完整代码 一.背景 由于钉钉机器人目前不支持发送表格消息,所以想通过Graphics2D绘制表格生成图片文件后转Base64发送,在参考了其他 ...

  6. vue 渲染JSON数据动态生成表格组件

    vue 通过渲染JSON数据动态生成表头及对应表格内容组件 <template><div id="viewDialog"><el-button typ ...

  7. vue.js根据数据循环生成表格_vue 遍历数据生成table?

    后台数据如下: //银行列表 bankDto: [ 0: {bankName: "中国工商银行", bankCode: "20000001", sName: & ...

  8. java生成表格图片

    为什么80%的码农都做不了架构师?>>>    主要代码: /*** 生成图片* @param cellsValue 以二维数组形式存放 表格里面的值* @param path 文件 ...

  9. java生成表格图片_java生成表格图片

    主要代码: /** * 生成图片 * @param cellsValue 以二维数组形式存放 表格里面的值 * @param path 文件保存路径 */ public void myGraphics ...

  10. vue.js根据数据循环生成表格_vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for {{ item.message }} var example1 = new Vue({ el: '#example-1', ...

最新文章

  1. SAP凭证冲销BAPI用法
  2. 备考信息系统项目管理师-----Day2
  3. mysql某月按小时统计数据_Mysql按周,按月,按日,按小时分组统计数据
  4. SVN switch 用法详解
  5. linux下exec系列(一)
  6. web里如何在背景图片上放置div元素_2020年web前端开发经典面试题总结整理(建议收藏)...
  7. jsp,servlet中文乱码问题
  8. 嵌入式系统TinyOS学习资源
  9. 高性能mysql感觉并不好_高性能MySQL读书笔记(4)
  10. js ajax 401,$ .ajax请求总是401(UNAUTHORIZED)
  11. 低延时直播系统开发技术方案
  12. 惠普暗影精灵8和惠普暗影精灵7区别
  13. 使用snmpwalk采集设备的OID信息
  14. 手机上好用的APP推荐
  15. 渭师院的计算机专业学什么课程,【三名+建设工作】渭南初级中学教师郭晓辉走进渭师院给大学生上课...
  16. java百分比转小数点_Java中小数与百分数的互相转换-Fun言
  17. Unknown column 'xxxx' in 'field list'
  18. 6-dw_元数据管理
  19. 《结构动力分析的MATLAB实现》,结构动力分析的MATLAB实现
  20. 2021.03青少年软件编程(Python)等级考试试卷(二级)

热门文章

  1. LeetCode 1818、绝对差值和
  2. java/php/net/python毕业生就业管理系统
  3. 查看linux内存大小
  4. vue获取屏幕高度、元素高度、元素滚动scrollTop
  5. libcef和js交互
  6. 3.微信小程序--快速开发UI界面
  7. 无权访问同一网络的共享计算机,局域网共享文件夹无权访问怎么办
  8. 【调查】35 岁以下的青年科研(青椒)人员工资多少?生活过得怎么样?
  9. 苹果电脑如何改id?这篇文章帮你搞定
  10. 腾讯云TRTCCalling实时音视频说明文档