Imagick添加文字和圖片的方法
<pre>
<?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
</pre>
ps:文字之間加間距 直接打空格就行了
每行14個字 分割成數組的寫法
<pre> $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');
}
</pre>
<pre>ps:imagick實現多行文字
foreach ($mubiaolist as $k => $v) {
$draw1->annotation(170, 580+$k*40, $v);
}
</pre>
ps:多行文字 可以用屬性互相覆蓋的
<pre>
$draw1->setTextAlignment(3);
$draw1->annotation(350, 600, 'waf');
$draw1->setTextAlignment(1);
$draw1->annotation(177, 540, 'eee');
</pre>
ps:多行 字間距問題都用 單獨給文字設置坐標來寫為好