PHP使用GD库生成文件
时间:2022-07-23
本文章向大家介绍PHP使用GD库生成文件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<?php
$xgcs_result = $this->get_xgcs_result($key);
if (!empty($xgcs_result) && isset($xgcs_result['type']) && isset($xgcs_result['content']) && isset($xgcs_result['image']) && $name) {
$tip_string = $xgcs_result['content'];
$cat = date("Ymd", time());
$path = SITEPATH . 'uploads/xinggeceshi/' . $cat;//生成的图片路径
if (!file_exists($path)) {
mkdir($path, 0755, true);
}
$file_name = sha1(microtime() . $_SERVER['REMOTE_ADDR'] . "sdgjasdruisodgjketidfg" . rand(1, 10000000) . rand(1, 10000000)) . '.png';//生成的图片名称
$pic_path = $path . '/' . $file_name;//生成图片完整路径
$pic_width = 420;//生成图片的宽高
$pic_height = 700;
$local_image = SITEPATH . "static/activity/img/xinggeceshi/" . $xgcs_result['image'];
$src_image = imagecreatefrompng($local_image);
$src_width = imagesx($src_image);
$src_height = imagesy($src_image);
//创建图片
//$dest_image = imagecreate($pic_width, $pic_height);
$dest_image = @imagecreatetruecolor($pic_width, $pic_height) or die('Cannot Initialize new GD image stream');
//创建颜色
$result = imagecopy($dest_image, $src_image, 0, 0, 0, 0, $pic_width, $pic_height);
$white = imagecolorallocate($dest_image, 255, 255, 255);
imagefilledrectangle($dest_image, 0, $src_height, $pic_width, $pic_height, $white);
$text_color = imagecolorallocate($dest_image, 102, 102, 102);
$tip_length = mb_strlen($tip_string);
$tip_num = 20;
$row = ceil($tip_length / $tip_num);
$font_size = 14;//文字大小
$fontPath = ROOTPATH . 'sitedata/fonts/font2.ttf';//楷体
$heitiPath = ROOTPATH . 'sitedata/fonts/simhei.ttf';//黑体
//var_dump($tip_string);
$name_length_ext = strlen($name);
$name = mb_convert_encoding($name, "UTF-8", "GBK");
$name_color = imagecolorallocate($dest_image, 77, 61, 68);
$name_length = strlen($name);
$name_right = mb_convert_encoding("的测试结果是:", "UTF-8", "GBK");
$name_right_color = imagecolorallocate($dest_image, 151, 153, 162);
if ($name_length > 12) {
imagettftext($dest_image, 16, 0, 18, $src_height + 50, $name_color, $heitiPath, $name);
imagettftext($dest_image, $font_size, 0, 18 + 11 * $name_length_ext, $src_height + 50, $name_right_color, $fontPath, $name_right);
} else {
imagettftext($dest_image, 28, 0, 18, $src_height + 50, $name_color, $heitiPath, $name);
imagettftext($dest_image, $font_size, 0, 18 + 20 * $name_length_ext, $src_height + 50, $name_right_color, $fontPath, $name_right);
}
$type = mb_convert_encoding($xgcs_result['type'], "UTF-8", "GBK");
$type_length = strlen($type);
$type_color = imagecolorallocate($dest_image, 255, 87, 80);
$type_right = mb_convert_encoding("型血", "UTF-8", "GBK");
$type_right_color = imagecolorallocate($dest_image, 255, 87, 80);
imagettftext($dest_image, 20, 0, 18, $src_height + 90, $type_color, $heitiPath, $type);
imagettftext($dest_image, $font_size, 0, 18 + 18 * $type_length, $src_height + 90, $type_right_color, $fontPath, $type_right);
for ($i = 0; $i < $row; $i++) {
$authOne = mb_substr($tip_string, $i * $tip_num, $tip_num, 'GBK');
$authOne = mb_convert_encoding($authOne, "UTF-8", "GBK");
imagettftext($dest_image, $font_size, 0, 18, $src_height + 120 + 30 * $i, $text_color, $fontPath, $authOne);
}
if (imagepng($dest_image, $pic_path)) {
imagedestroy($dest_image);
$pic_url = NET_URL . 'uploads/xinggeceshi/' . $cat . '/' . $file_name;
return $pic_url;
} else {
return FALSE;
}
}
以上代码是在做一次活动海报生成时使用的。
- “盲”逆向:iOS 应用 Blind 寻踪
- 根据时间字段导入数据的问题总结 (r6笔记第6天)
- Gnuboard 漏洞分析
- 一次数据库宕机问题的分析(r6笔记第5天)
- PWN学习之house of系列(一)
- 清理session的小插曲(二) (r6笔记第4天)
- 3.训练模型之在GPU上训练的环境安装
- 深度学习对话系统实战篇 -- 简单 chatbot 代码实现
- pangrank算法--PageRank算法并行实现
- 刷爆朋友圈的 deepfakes 视频人物换脸是怎样炼成的?
- 干货 | ElasticSearch相关性打分机制
- FCN 的简单实现
- 2.运行一个demo
- ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)/ ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY CO
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC