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 ...
随机推荐
- css父元素透明度(opacity)对子元素的影响
首先子元素会继承父元素的透明度: 设置父元素opacity:0.5,子元素不设置opacity,子元素会受到父元素opacity的影响,也会有0.5的透明度. 其次子元素的透明度是基于父元素的透明度计 ...
- Hyper-V 下linux虚拟机静态IP上网配置的两种方式(1)
工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下是桥接方式的配置: 本实例所用的各项资源说明,系统是windows10企业版64bi ...
- drf框架中所有视图及用法
0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views ...
- 白话系列之实现自己简单的mvc式webapi框架
前言:此文为极简mvc式的api框架,只当做入门api的解析方式,并且这里也不算是mvc框架,因为没有view层,毕竟现在大部分都属于前后端分离,当然也可以提供view层,因为只是将view当做文本返 ...
- Oracle数据库提权(低权限提升至dba)
0x01 Oracle存储过程”缺陷” 在 Oracle 的存储过程中,有一个有趣的特点:运行权限.运行权限分为两种,definer 和 invoker. definer 为函数创建者的权限,而 in ...
- Neo4j:图数据库GraphDB(三)创建删除及高级操作
本片继续前几篇介绍图数据库的创建,有疑问可以我的看看前两篇文章:http://www.cnblogs.com/rongyux/p/5537206.html 四 图数据库的创建 1 创建一个节点 P ...
- Cocos2d-x 学习笔记(11.3) JumpBy JumpTo
1. JumpBy JumpTo JumpBy,边跳边平移,不只做垂直向上的抛物动作,同时还在向终点平移.JumpTo是JumpBy的子类. 1.1 成员变量 create方法 JumpBy: Vec ...
- Linux下yum与apt-get
linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包 ...
- kubernetes kubelet组件中cgroup的层层"戒备"
cgroup是linux内核中用于实现资源使用限制和统计的模块,docker的风靡一时少不了cgroup等特性的支持.kubernetes作为容器编排引擎,除了借助docker进行容器进程的资源管理外 ...
- Activity 学习(二) 搭建第一个Activity流程框架
本次示例使用的IDER测试完成 测试背景 : xx饿了去饭店吃饭 需要先和服务员点餐 点完餐后服务员将菜品传递给厨师制作 制作完成后吃饱 一 :创建流程图 创建上一篇测试成功出现的BpmnFil ...