ImagickDraw::setFontSize()
(PECL imagick 2.0.0)
Sets the font pointsize to use when annotating with text
说明
ImagickDraw::setFontSize(float $pointsize): bool
Warning本函数还未编写文档,仅有参数列表。
Sets the font pointsize to use when annotating with text.
参数
- $pointsize
the point size
返回值
没有返回值。
范例
Example #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(); } ?>
The font size taken in parameter is not the size in point (1 point = 1/72 inch) but the font's height in pixel. Therefore you should do a conversion to have the correct font size if you want to modify a document destined to print. For example, if your document's resolution is 300ppi, you should add a 25/6 multiplying factor to your fontsize in order to have a correct behaviour of the font.
<?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);//Sets the font pointsize to use when annotating with text $draw->setFillColor($colorPix);//Sets the fill color to be used for drawing filled objects $image->annotateImage($draw,$x,$y,0,$textWrite);//Annotates an image with text $image->writeImage('out.jpg');//Writes an image to the specified filename ?>