zend-blog-3-backend
44 строки · 1.1 Кб
1<?php
2
3namespace App\Model\Resizer;
4
5use Imagick;
6use ImagickDraw;
7use ImagickPixel;
8
9trait DebugAnnotation
10{
11private function annotate($width, $height, Imagick $image)
12{
13/*
14$fontList = Imagick::queryFonts('*');
15foreach ($fontList as $fontName) {
16dump($fontName);
17}
18return */
19
20$draw = new ImagickDraw();
21
22$draw->setFont('DejaVu-Sans-Mono');
23$draw->setFontSize(16);
24$draw->setFillColor(new ImagickPixel('#FFFFFF'));
25$draw->setStrokeAntialias(true);
26$draw->setTextAntialias(true);
27
28$text = sprintf(
29'%s%s%s',
30$width ? $width . 'w ' : '',
31$height ? $height . 'h ' : '',
32$this->getFormat()
33);
34
35$metrics = $image->queryFontMetrics($draw, $text);
36$draw->annotation(5, 2 + $metrics['ascender'], $text);
37
38$canvas = new Imagick();
39$canvas->newImage(10 + $metrics['textWidth'], 4 + $metrics['textHeight'], new ImagickPixel('#000000'));
40
41$canvas->drawImage($draw);
42$image->compositeImage($canvas, Imagick::COMPOSITE_OVER, 5, 5);
43}
44}
45