php imagick 文字居中的方法
php imagick 文字居中的方法
<pre>
public function getwenzinfo($nickName)
{
$nickNamelen = mb_strlen($nickName, 'utf-8');
$wzallkd = 0;
$wzallkdlist = array();
$wzallkdlist[] = 0;
$perzifulist = array();
for ($i = 0; $i < $nickNamelen; $i++) {
$perzifu = mb_substr($nickName, $i, 1, 'utf-8');
$perzifulist[] = $perzifu;
if (preg_match("/^[A-Za-z0-9]+$/", $perzifu) == false) {
// echo '是中文';
$wzkd = 26;
$wzallkd += 26;
} else {
// echo '不是中文';
$wzkd = 17;
$wzallkd += 15;
}
$wzallkdlist[] = $wzkd;
}
/*因为字符串宽度是 字符本身宽度+字符之间的间隔-最后的字符串间隔*/
$wzallkd=$wzallkd-2;
array_pop($wzallkdlist);
$wenziinfo['wzallkd'] = $wzallkd;
$wenziinfo['wzallkdlist'] = $wzallkdlist;
$wenziinfo['perzifulist'] = $perzifulist;
return $wenziinfo;
}
$text = new \Imagick();
$text->newImage(750, 1206, 'none');
$text->setImageFormat('png');
$draw1 = new \ImagickDraw();
$draw1->setFont(__DIR__ . '/../../../Public/tianyangzhongqiu/ziti/fanzhengdahei.ttf'); //设置中文字体 可以解决中文乱码问题
/*$draw->setTextAlignment(1);*///1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1
$xingzuocolor = $this->getxingzuocolor($xingzuo);
$draw1->setFillColor(new \ImagickPixel($xingzuocolor));
$draw1->setFontSize(27);
$draw1->setTextAlignment(1);
$nickName = '啦啊';
$wenziinfo = $this->getwenzinfo($nickName);
$wzallkd = $wenziinfo['wzallkd'];
$wzallkdlist = $wenziinfo['wzallkdlist'];
$perzifulist = $wenziinfo['perzifulist'];
$wenzizuobiao = (750 - $wzallkd) / 2;
foreach ($wzallkdlist as $k => $v) {
$wenzizuobiao += $v;
$draw1->annotation($wenzizuobiao, 240, $perzifulist[$k]);
}
$draw1->annotation(167, 290, $chengji);
$text->drawImage($draw1);
</pre>
ps:就是先设置宽度 然后打字 就这样文字宽度我来定 就不会出错了
php imagick 文字居中的方法的更多相关文章
- Android ToolBar标题文字居中的方法
在项目的开发中,使用苹果手机的产品,出的界面效果图极有可能(我这里是一定)完全是按照苹果的界面风格来出的,例如界面顶部的title文字位置是水平居中 如图: 那么问题来了,当我们使用ToolBar控件 ...
- android RadioButton文字居中的方法
每个RadioButton的style原先是这样的: <style name="radiobutton_style" > <item name="and ...
- 设置select和option的文字居中的方法
给select设置text-align:center在火狐浏览器下ok,但是在chrome浏览器无效,然后option在两个浏览器下设置text-align:center都是无效的,解决方法,设置样式 ...
- 关于css如何让图片文字居中的方法
在将父级转换为单元格形式时,设置的相关属性 可以达到如下效果:
- Android TextView 文字居中
有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...
- 完美解决移动Web小于12px文字居中的问题
前几天的一篇博文:移动Web单行文字垂直居中的问题,提到了移动web里小于12px的文字居中异常的问题,最后还是改为12px才近乎解决了问题.但是有时候或许并不是那么乐观,你并不能将原本定为10px的 ...
- 设置TextView文字居中
有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...
- 【转】设置TextView文字居中
原文网址:http://blog.csdn.net/lanpy88/article/details/6616924 有2种方法可以设置TextView文字居中: 一:在xml文件设置:android: ...
- 如何设置select和option的文字居中?
今天在设置option文字居中时发现,给select设置text-align:center在火狐浏览器下ok,但是在chrome浏览器无效,然后option在两个浏览器下设置text-align:ce ...
随机推荐
- spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别
概念 Bean创建过程中的"实例化"与"初始化"名词 实例化(Instantiation): 要生成对象, 对象还未生成. 初始化(Initialization ...
- 关于用gulp合并压缩seaJs模块
现在很多人都在用seaJs来开发项目,seaJs上手容易,操作简单.但在后期做合并压缩的时候却中了个巨大无比的坑,但坑也总得有人来填.于是花了将近一个星期的时间来填了这坑,现将填坑的一些心得与大家分享 ...
- Git & Github 使用教程【1】入门篇
Github教程 1-1 版本管理工具简介 主要作用:备份文件.记录历史.回到过去.多端共享.独挡一面.团队协作 2-1 版本管理工具发展历史 3-1 Git下载和安装[略] 3-2 linux下安装 ...
- LeetCode初级算法--设计问题01:Shuffle an Array (打乱数组)
LeetCode初级算法--设计问题01:Shuffle an Array (打乱数组) 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:h ...
- Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第27篇. 本篇文章我们先来 ...
- Jedis运用scan删除正则匹配的key
jedis运用scan删除正则匹配的key 我们都知道用keys *进行查询key的时候会进行堵塞,导致redis整体不可用,而使用scan命令则不会. RedisServiceImpl中sca ...
- 百万年薪python之路 -- 变量及if的练习
1.简述变量命名规范 1.变量由数字,字母,下划线组成 2.不能以数字开头 3.不能使用python关键字 4.不能使用中文和拼音命名 5.区分大小写 6.变量名要具有描述性 7.推荐写法 7.1驼峰 ...
- IOT设备的7大安全问题
IOT设备的7大安全问题 串口安全 IOT设备一般包含各类串口,并且这些串口缺乏认证机制.一旦暴露给了hacker,hacker可以很容易的查找敏感信息和dump固件,从而导致各类安全问题.建议厂家在 ...
- The usage of Markdown---标题
更新时间:2019.09.14 目录: 1. 序言 2. 标题 2.1 类Atx形式 2.2 类Setext形式 3. 总结 1. 序言 Markdown是一种纯文本的标记语言,只要熟悉M ...
- .Net轻量状态机Stateless的简单应用
对于大部分系统中流程的变更,是十分正常的事情,小到一个状态的切换,大到整个系统都是围绕业务流再走,复杂点的有工作流引擎,简单点的几个if/else收工,但是往往有那种,心有余而力不足的,比简单复杂,比 ...