php网站建设首页图片,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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值