php使用Imagick生成图片的方法


Posted in PHP onJuly 31, 2015

本文实例讲述了php使用Imagick生成图片的方法。分享给大家供大家参考。具体如下:

这里使用Imagick 生成图片
解决了图片写中文文字乱码问题,添加支持的字体

public function getPic(){
  header('Content-Type: text/html; charset=utf-8');
  $text = '中粮屯河(sh600737)';//中粮屯河(sh600737)
  $watermark = '305988103123zczcxzas';
  $len = strlen($text);
  $width = 10.5*(($len-8)/3*2+8);
  $height = 26;
  $imagick = new Imagick();
  $color_transparent = new ImagickPixel('#ffffff'); //transparent 透明色
  $imagick->newImage($width, $height, $color_transparent, 'jpg');
  //$imagick->borderimage('#000000', 1, 1);
  $style['font_size'] = 12;
  $style['fill_color'] = '#000000';
  for($num= strlen($watermark); $num>=0; $num--){
   $this->add_text($imagick,substr($watermark, $num,1), 2+($num*8), 30, 1,$style);
   $this->add_text($imagick,substr($watermark, $num,1), 2+($num*8), 5, 1,$style);
  }
  //return;
  $style['font_size'] = 20;
  $style['fill_color'] = '#FF0000';
  $style['font'] = './msyh.ttf'; ///微软雅黑字体 解决中文乱码
  //$text=mb_convert_encoding($text,'UTF-8'); //iconv("GBK","UTF-8//IGNORE",$text);
  $this->add_text($imagick,$text, 2, 20, 0,$style);
  header ( 'Content-type: ' . strtolower ($imagick->getImageFormat ()) );
  echo $imagick->getImagesBlob ();
}
// 添加水印文字
public function add_text(& $imagick, $text, $x = 0, $y = 0, $angle = 0, $style = array()) {
  $draw = new ImagickDraw ();
  if (isset ( $style ['font'] ))
   $draw->setFont ( $style ['font'] );
  if (isset ( $style ['font_size'] ))
   $draw->setFontSize ( $style ['font_size'] );
  if (isset ( $style ['fill_color'] ))
   $draw->setFillColor ( $style ['fill_color'] );
  if (isset ( $style ['under_color'] ))
   $draw->setTextUnderColor ( $style ['under_color'] );
  if (isset ( $style ['font_family'] ))
   $draw->setfontfamily( $style ['font_family'] );
  if (isset ( $style ['font'] ))
   $draw->setfont($style ['font'] );
  $draw->settextencoding('UTF-8');
  if (strtolower ($imagick->getImageFormat ()) == 'gif') {
   foreach ( $imagick as $frame ) {
    $frame->annotateImage ( $draw, $x, $y, $angle, $text );
   }
  } else {
   $imagick->annotateImage ( $draw, $x, $y, $angle, $text );
  }
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
图书管理程序(三)
Oct 09 PHP
php str_replace的替换漏洞
Mar 15 PHP
使用PHP批量生成随机用户名
Jul 10 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
php变量作用域的深入解析
Jun 03 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
php之readdir函数用法实例
Nov 13 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
浅谈PHP进程管理
Mar 08 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 #PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 #PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 #PHP
PHP中filter函数校验数据的方法详解
Jul 31 #PHP
PHP代码实现爬虫记录――超管用
Jul 31 #PHP
PHP 前加at符合@的作用解析
Jul 31 #PHP
PHP查看当前变量类型的方法
Jul 31 #PHP
You might like
十天学会php之第五天
2006/10/09 PHP
PHP实现的功能是显示8条基色色带
2006/10/09 PHP
php数据库抽象层 PDO
2011/05/07 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
python pyheatmap包绘制热力图
2018/11/09 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
综合实践活动方案
2014/02/14 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
遗失说明具结保证书
2015/02/26 职场文书
统计工作个人总结
2015/03/03 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python