php使用Imagick生成图片的方法

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

这里使用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,$style); $this->add_text($imagick,5,$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,$style); header ( 'Content-type: ' . strtolower ($imagick->getimageFormat ()) ); echo $imagick->getimagesBlob (); } // 添加水印文字 public function add_text(& $imagick,$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,$text ); } }

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...