PHP imagecreate - 生成自定义图片

该方法是根据字符的长度改变字体的大小

function generateCover($content,$author,$date)//$content名称  $author作者  $date日期
{$width = 640;$height = 360;$myImage = ImageCreate($width,$height); //参数为宽度和高度$white = ImageColorAllocate($myImage, 255, 255, 255);//白色$blue = ImageColorAllocate($myImage, 0, 0, 255);//蓝色imagefill($myImage, 0, 0, $blue);//蓝色背景$font = "/src/style/fonts/msyh.ttf";//下载的字体,可自行百度搜下载引用$filePathDir = "file/cover/" . date("Ymd") . '/';if (!is_dir($filePathDir)) {mkdir($filePathDir, 0777, true);//创建图片的存储文件夹}$filePath   = $filePathDir.md5(time()).'.jpg';//图片的路径$date = date("Y-m-d",strtotime($date));if(mb_strlen($content) <= 10) {//字符长度大于等于10contentlenth1($myImage,$content,$author,$date,$font,$width,$height,$white,$filePath);}else {contentlenth2($myImage,$content,$author,$date,$font,$width,$height,$white,$filePath);}return $filePath;
}

//标题长度小于等于10

function contentlenth1($myImage,$string,$author,$date,$font,$width,$height,$white,$filePath)
{$textlen = mb_strlen($string);$value = $textlen - 4;if ($value < 0)$value = 0;$fontsize = 3.5 * (6 - $value) + 30;$fontwidth = $fontsize * 1.35;$fontheight = $fontsize * 1;for ($i=0;$i<mb_strlen($string);$i++) {$letter[] = mb_substr($string, $i, 1);}imagettftext($myImage, $fontsize, 0, ($width-$fontwidth*mb_strlen($string))/2, ($height * 0.7 + $fontheight) / 2, $white, $font, $string);$authorrHeight = ($height * 0.15 + 20)/ 2 + $height * 0.55;$dateHeight = ($height * 0.15 + 20) / 2 + $height * 0.75;imagettftext($myImage, 20, 0, ($width-20*1.35*mb_strlen($author))/2, $authorrHeight, $white, $font, $author);imagettftext($myImage, 20, 0, ($width-0.72*20*strlen($date))/2, $dateHeight, $white, $font, $date);imagepng($myImage,$filePath);
}

//标题长度超过10

function contentlenth2($myImage,$string,$author,$date,$font,$width,$height,$white,$filePath)
{$toplen = ceil(mb_strlen($string) * 0.4);$texttop = mb_substr($string, 0, $toplen);$texttoplen = mb_strlen($texttop);$value = $texttoplen - 4;if ($value < 0)$value = 0;$fontsize = 2 * (6 - $value) + 30;$fontwidth = $fontsize * 1.35;$fontheight = $fontsize * 1;imagettftext($myImage, $fontsize, 0, ($width-$fontwidth*mb_strlen($texttop))/2,($height * 0.7 + $fontheight) / 2 - $fontsize, $white, $font, $texttop);$textbottom = mb_substr($string, $toplen, mb_strlen($string) - $toplen);imagettftext($myImage, $fontsize, 0, ($width-$fontwidth*mb_strlen($textbottom))/2,($height * 0.7 + $fontheight) / 2 + $fontsize, $white, $font, $textbottom);$authorrHeight = ($height * 0.15 + 20)/ 2 + $height * 0.6;$dateHeight = ($height * 0.15 + 20) / 2 + $height * 0.75;imagettftext($myImage, 20, 0, ($width-20*1.35*mb_strlen($author))/2, $authorrHeight, $white, $font, $author);imagettftext($myImage, 20, 0, ($width-20*0.72*strlen($date))/2, $dateHeight, $white, $font, $date);imagepng($myImage,$filePath);
}

效果图:

PHP imagecreate - 生成自定义图片相关推荐

  1. 用python3根据配置自动生成自定义图片logo(一键解决图片侵权困扰)

    欢迎关注原创视频教程 Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.c ...

  2. php颜色底色,PHP GD 库自定义图片背景颜色

    缘起 开发"微信推广海报"的时, 背景图片未覆盖的地方默认会被黑色填充. 而我希望改成白色背景, 以对用户更友好一些. 但是无论设置成什么颜色, 图片的背景颜色一直都是黑色, 无法 ...

  3. java 生成证书图片_java生成自定义证书图片4

    终于到了生成自定义证书图片的最后一步,pdf转图片我选择使用pdfbox库,以下是工具类: packagecom.x.certificate.pdf;importjava.awt.image.Buff ...

  4. 使用位图字体工具BMFont从图片生成自定义字体

    上一篇转了别人的一篇文章,讲了BMFont的基本用法.对BMFont比较陌生的同学请点击这里先去学习:http://blog.csdn.net/keshuiyun/article/details/99 ...

  5. uniapp中自定义生成海报图片

    uniapp中自定义生成海报图片 效果示例图 效果示例图 ##代码块 <template><view class="cardPoster-wrap">< ...

  6. php 生成gif验证码,PHP生成Gif图片验证码

    验证码在好多地方都要用到,这里提供一个新开发的安全验证码类,支持生成Gif图片验证码(带噪点,干扰线,网格,随机色背景,随机自定义字体,倾斜,Gif动画). 先看效果图 字体及字体文件的路径需要在类中 ...

  7. qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...

    主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...

  8. 实现32/64位Windows虚拟扫描仪自定义图片加载

    大部分扫描仪都支持TWAIN协议,为了方便开发扫描仪应用程序,TWAIN组织在GitHub上放了虚拟扫描仪的示例代码.这份代码只支持加载自带的TWAIN图标,ADF连续扫描也不起作用.为了更真实的模拟 ...

  9. android后台通过View生成分享图片

    原文地址:http://www.jianshu.com/p/33e30da0385c 最近工作特忙,好久没静下心总结一些开发中的心得,后面会陆续写一些文章总结一下最近遇到的问题和一些收获吧- 闲话少说 ...

最新文章

  1. adb提取安装的apk
  2. mysql ft_mysql全文索引____ft_min_word_len
  3. Gridview的footer模板中放置控件实现添加功能
  4. 电脑上的linux是什么文件夹,linux删除文件夹,详细教您电脑的linux怎么样删除文件夹...
  5. aop统计请求数量_使用SpringAOP获取一次请求流经方法的调用次数和调用耗时
  6. hyperledger fabric PBFT算法简要解析
  7. Dev-C++的下载和安装
  8. SHA算法 (sha0 sha1源码魔改)
  9. Navicat Premium 15 工具自动被杀毒防护软件删除解决方法
  10. 家用NAS进阶折腾之旅—常见NAS系统介绍和一些体会以及QNAP 威联通 TS-563 NAS使用感受
  11. 利用nat123解决微信公众号对接服务器必须为80端口的问题
  12. 通达信板块监控指标_通达信主力监控系统指标公式
  13. 使用 Python 第三方库发送电子邮件
  14. C语言一行一行读取文件
  15. Pytest fixture实现测试用例前置后置操作
  16. 我们吵的百分之九十的架都是同一个原因
  17. 关于定义二维数组时为什么可以省略行,而不可以省略列
  18. 迅视财经 如何在“算法过滤”的世界里生活
  19. 怎样根据不同的睡姿选择合适的枕头?
  20. 连接oracle的scott数据库,Oracle scott用户连接数据库出错的解决方法

热门文章

  1. windows如何让电脑朗读你的文字
  2. 2022-2028年中国锂电池保护板行业市场全景调查及投资潜力研究报告
  3. java-net-php-python-jspm图书管理系统计算机毕业设计程序
  4. 一家经营亏损的理疗按摩馆,一月内收回现金一百多万,怎么做的?
  5. 黑石五子棋3.7解版_黑石测试版!!!
  6. qq群怎么引流赚钱?利用QQ群引流变现技巧
  7. GridView绑定DataSet的DataTable,怎么让它在无记录时能显示表头呀(环境VS2005),在线等 谢谢!!
  8. bind-html自动换行,vue element ui this.$alert 样式修改,长词自动换行、自定义htm
  9. 【Linux】进程的程序替换(execl、execlp、execle、execvpe等替换函数)
  10. android6 miui9分屏,miui9分屏功能