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 相关文章推荐
把PHP安装为Apache DSO
Oct 09 PHP
我用php+mysql写的留言本
Oct 09 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
深入PHP数据加密详解
Jun 18 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
教大家制作简单的php日历
Nov 17 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
PHP执行普通shell命令流程解析
Aug 24 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数组的一些常见操作汇总
2011/07/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
jquery 笔记 事件
2011/11/02 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
求职推荐信范文
2013/12/01 职场文书
高中运动会入场词
2014/02/14 职场文书
安全生产目标责任书
2014/04/14 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers