参数中使用的字体大小不是磅值 (1 磅 = 1/72 英寸),而是字体的高度(以像素为单位)。
因此,如果您要修改旨在打印的文档,则应进行转换以获得正确的字体大小。
例如,如果文档的分辨率为 300ppi,则应将字体大小乘以 25/6,以确保字体正确显示。
(PECL imagick 2, PECL imagick 3)
ImagickDraw::setFontSize — 设置用于文本标注的字体大小
pointsize
点大小
不返回任何值。
示例 #1 ImagickDraw::setFontSize() 示例
<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {
$draw = new \ImagickDraw();
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFont("../fonts/Arial.ttf");
$sizes = [24, 36, 48, 60, 72];
foreach ($sizes as $size) {
$draw->setFontSize($size);
$draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
}
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}
?>
参数中使用的字体大小不是磅值 (1 磅 = 1/72 英寸),而是字体的高度(以像素为单位)。
因此,如果您要修改旨在打印的文档,则应进行转换以获得正确的字体大小。
例如,如果文档的分辨率为 300ppi,则应将字体大小乘以 25/6,以确保字体正确显示。
<?php
$sourceFile='in.jpg';
$textWrite='God is Great';
$x=50;
$y=50;
$fontColor='#000000';
$fontSize=34;
$colorPix=new ImagickPixel ($fontColor);
$image=new Imagick ($sourceFile);
$draw=new ImagickDraw();
$draw->setFontSize($fontSize);//设置用于文本标注的字体大小
$draw->setFillColor($colorPix);//设置用于绘制填充对象的填充颜色
$image->annotateImage($draw,$x,$y,0,$textWrite);//使用文本注释图像
$image->writeImage('out.jpg');//将图像写入指定的文件名
?>