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 文字居中的方法的更多相关文章

  1. Android ToolBar标题文字居中的方法

    在项目的开发中,使用苹果手机的产品,出的界面效果图极有可能(我这里是一定)完全是按照苹果的界面风格来出的,例如界面顶部的title文字位置是水平居中 如图: 那么问题来了,当我们使用ToolBar控件 ...

  2. android RadioButton文字居中的方法

    每个RadioButton的style原先是这样的: <style name="radiobutton_style" > <item name="and ...

  3. 设置select和option的文字居中的方法

    给select设置text-align:center在火狐浏览器下ok,但是在chrome浏览器无效,然后option在两个浏览器下设置text-align:center都是无效的,解决方法,设置样式 ...

  4. 关于css如何让图片文字居中的方法

    在将父级转换为单元格形式时,设置的相关属性  可以达到如下效果:

  5. Android TextView 文字居中

    有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...

  6. 完美解决移动Web小于12px文字居中的问题

    前几天的一篇博文:移动Web单行文字垂直居中的问题,提到了移动web里小于12px的文字居中异常的问题,最后还是改为12px才近乎解决了问题.但是有时候或许并不是那么乐观,你并不能将原本定为10px的 ...

  7. 设置TextView文字居中

    有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...

  8. 【转】设置TextView文字居中

    原文网址:http://blog.csdn.net/lanpy88/article/details/6616924 有2种方法可以设置TextView文字居中: 一:在xml文件设置:android: ...

  9. 如何设置select和option的文字居中?

    今天在设置option文字居中时发现,给select设置text-align:center在火狐浏览器下ok,但是在chrome浏览器无效,然后option在两个浏览器下设置text-align:ce ...

随机推荐

  1. .NET Core ❤ gRPC

    这篇内容主要来自Microsoft .NET团队程序经理Sourabh Shirhatti的博客文章:https://grpc.io/blog/grpc-on-dotnetcore/, .NET Co ...

  2. Head First设计模式——策略模式

    1.继承带来的扩展和复用问题 继承作为面向对象的三大要素(封装.继承.多态)之一为什么会带来问题,问题如何解决然后形成一种设计模式,head frist设计模式书中以鸭子作为例子讲解什么情况下继承的方 ...

  3. Spring 注册BeanPostProcessor 源码阅读

    回顾上一篇博客中,在AbstractApplicationContext这个抽象类中,Spring使用invokeBeanFactoryPostProcessors(beanFactory);执行Be ...

  4. C语言基于窗体命令行打包,解包和浏览程序

    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#inc ...

  5. JavaScript ES6函数式编程(二):柯里化、偏应用和组合、管道

    上一篇介绍了闭包和高阶函数,这是函数式编程的基础核心.这一篇来看看高阶函数的实战场景. 首先强调两点: 注意闭包的生成位置,清楚作用域链,知道闭包生成后缓存了哪些变量 高阶函数思想:以变量作用域作为根 ...

  6. c++11::std::is_same/decay

    #include <type_traits> std::is_same 判断类型是否一致 通过std::is_same即可判断两个类型是否一样,特别在模板里面,在不清楚模板的参数时,此功能 ...

  7. 《Java并发编程实战》读书笔记-第5章 基础构建模块

    同步容器类 同步容器类实现线程安全的方式:将所有状态封装起来,对每个公有方法使用同步,使得每一次只有一个线程可以访问.同步容器类包含:Vector.Hashtable.Collections.sync ...

  8. chrome devtools tip(1)--调试伪类

    开发中我们经常遇到,添加些focus,hover事件,样式,但当我们去打开 chrome devtools,浮动上去的时候,然后准备去改变样式的时候,结果由于光标移动了,样式不见了,非常不方便调试,其 ...

  9. 去除img下方的空白(vertical-align:middle)——原理

    代码如下:一个简单的div装在一个img中, 然而在预览时却发现这种情况 也就是说img下方会无缘无故出现一个空隙.然后你发现,只要给img元素加上一个属性 vertical-align:middle ...

  10. springboot使用spring配置文件

    1.如何在springboot中使用spring的配置文件,使用@Configuration和@ImportResource注解 package com.spring.task; import org ...