Home > php教程 > php手册 > body text

php使用Imagick生成图片的方法

WBOY
Release: 2016-06-06 19:49:53
Original
2354 people have browsed it

这篇文章主要介绍了php使用Imagick生成图片的方法,实例分析了php基于Imagick实现添加水

本文实例讲述了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程序设计有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template