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 文本文件的读取效率
Feb 10 PHP
php中使用sftp教程
Mar 30 PHP
php析构函数的简单使用说明
Aug 24 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
php微信开发之图片回复功能
Jun 14 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 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输出1000以内质数(素数)示例
2014/02/16 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
php英文单词统计器
2016/06/23 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
详解Python中的序列化与反序列化的使用
2015/06/30 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Python常用库大全及简要说明
2020/01/17 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
幼儿园大班毕业感言
2014/02/06 职场文书
2014全国两会心得体会
2014/03/17 职场文书
小学家长评语大全
2014/04/16 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
2014最新实习证明模板
2014/10/02 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2015年党员承诺书
2015/01/21 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
大学生实习推荐信
2015/03/27 职场文书
药店收银员岗位职责
2015/04/07 职场文书
工作收入证明范本
2015/06/12 职场文书
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android