失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 图片写字 imagick php imagick添加文字和图片的方法

php 图片写字 imagick php imagick添加文字和图片的方法

时间:2021-02-24 06:17:34

相关推荐

php 图片写字 imagick php imagick添加文字和图片的方法

Imagick添加文字和图片的方法

<?php $image = new Imagick(); $image->readImage("/home/www/wordpress/1212/p1_bg.png");

$watermark = new Imagick();

$watermark->readImage("/home/www/wordpress/1212/2.png");

/*$watermark->scaleImage(750, 1206, true); */ //放到等比例按照宽度缩小图片 按照

$image->compositeImage($watermark, imagick::COMPOSITE_OVER, 0, 0);

$text = new Imagick();

$text>newImage(750, 1206, 'none'); 这个是包含文字的外面的容器 类似div

$text>setImageFormat('png');

$draw = new ImagickDraw();

$draw>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题

/*$draw->setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1

$draw>setFillColor(new ImagickPixel('#f00'));

$draw>setFontSize(50);

$draw->;annotation(100, 60, 'welcome');

$draw>annotation(100, 80, 'welcome1'); //换行写法

$draw1 = new ImagickDraw();

$draw1>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题

/*$draw>setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1

$draw1>setFillColor(new ImagickPixel('#f00'));

$draw1>setFontSize(50);

$draw1>annotation(400, 360, '啦啦啦啦啦啦');

$text->drawImage($draw);

$text->drawImage($draw1);

$image>compositeImage($text, imagick::COMPOSITE_OVER, 0, 0);

w

ps:文字之间加间距 直接打空格就行了

每行14个字 分割成数组的写法

$mubiao = '哦啦啦啦啦阿拉啊啊啊啊啊啊啊啊啊二维违法微风啊我飞挖坟挖坟挖坟服务';

$mubiaocount = mb_strlen($mubiao, 'utf-8');

$fenge = 14;

$jihang = $mubiaocount / $fenge;

$mubiaolist = array();

for ($i = 0; $i <= $jihang; $i++) {

$mubiaolist[] = mb_substr($mubiao, $fenge*$i, $fenge, 'utf-8');

}

ps:imagick实现多行文字

foreach ($mubiaolist as $k => $v) {

$draw1->annotation(170, 580+$k*40, $v);

}

ps:多行文字 可以用属性互相覆盖的

$draw1->setTextAlignment(3);

$draw1->annotation(350, 600, 'waf');

$draw1->setTextAlignment(1);

$draw1->annotation(177, 540, 'eee');

ps:多行 字间距问题都用 单独给文字设置坐标来写为好

如果觉得《php 图片写字 imagick php imagick添加文字和图片的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。