本文阐述了PHP使用imagick生成
图片的方式。
分享给你供你
参考。以下是如下:
这里使用imagick生成图片
为
解决图片中
汉字的书写问题,请添加
支持的
字体。
公共
功能getpic(){
头('content-type:
文本/ HTML;字符集= UTF-8);
为文本= '屯河(sh600737 '); / /中粮屯河(sh600737)
美元'305988103123zczcxzas的水印=;
$ len = strlen($文本);
宽度= 10.5 *($($ len-8)/ 3 * 2 + 8);
身高= 26;
imagick美元=新imagick();
color_transparent美元=新imagickpixel(' # ffffff '); / /透明色
imagick美元->景新(美元美元美元的宽度,高度,color_transparent,'jpg);
/ / $ imagick -> borderimage(' # 000000 ',1, 1);
美元'font_size } = 12的风格{;
{ } =美元'fill_color风格的# 000000;
为($民= strlen($水印);$民> = 0;为民--){
美元-> add_text($ imagick,substr($水印,$num,1),2 +($民* 8),30, 1,$式);
美元-> add_text($ imagick,substr($水印,$num,1),2 +($民* 8),5, 1,$式);
}
返回;
美元'font_size } = 20的风格{;
{ } =美元'fill_color风格的# FF0000;
{ } =美元'font风格,或将msyh. TTF '; / / /微软雅黑字体
中文乱码的解决方案
/ /文字= mb_convert_encoding美元($文本,'utf-8 '); / / (GBK编码
美元-> add_text(imagick美元,2, 20, 0美元美元,文字风格);
头('content-type:'。Strtolower($ imagick -> getimageformat()));
echo $ imagick -> getimagesblob();
}
添加水印文本
公共功能add_text(imagick美元美元美元,文本,x = 0,y=0美元,0美元美元的角=,=阵列式())){
为画=新(imagickdraw);
如果(isset($风格{ 'font ' }))
为绘制->
设置字体($风格'font{ });
If (isset ($style {'font_size'}))
绘制-> setfontsize美元($风格'font_size{ });
如果(isset($风格{ 'fill_color ' }))
绘制-> setfillcolor美元($风格'fill_color{ });
如果(isset($风格{ 'under_color ' }))
绘制-> settextundercolor美元($风格'under_color{ });
如果(isset($风格{ 'font_family ' }))
绘制-> setfontfamily美元($风格'font_family{ });
如果(isset($风格{ 'font ' }))
为绘制->设置字体($风格'font{ });
为绘制-> settextencoding('utf-8);
如果(strtolower(($ imagick -> getimageformat))= = 'gif){
Foreach ($imagick as $frame) {
框架- > annotateimage美元(合画,X,Y元,元,角,为文本);
}
{人}
imagick美元-> annotateimage(画X美元,美元,美元,美元,美元,角度,文本);
}
}
希望本文能对大家的PHP
程序设计有所帮助。