Skip to content

Instantly share code, notes, and snippets.

@bardex
Last active February 24, 2020 20:34
Show Gist options
  • Save bardex/6bcce90e3117bdf3b179 to your computer and use it in GitHub Desktop.
Save bardex/6bcce90e3117bdf3b179 to your computer and use it in GitHub Desktop.
This PHP script draws a picture containing the fonts are available in Imagick (methods ImagickDraw::setFontFamily() or ImagickDraw::setFont() ). This code is tested for mageMagick 6.7.7-10 and php 5.5
<?php
$im = new \Imagick();
$count = count( \Imagick::queryFonts() );
$im->newImage(450, ($count * 25 + 20), new ImagickPixel('white'));
$draw = new \ImagickDraw();
$draw->setFillColor('black');
$draw->setFontSize(20);
foreach ( \Imagick::queryFonts() as $i => $font ) {
$draw->setFont($font);
$im->annotateImage($draw, 10, ($i * 25 + 20), 0, $font);
}
$im->setImageFormat('png');
header('Content-type: image/png');
echo $im;
$im->clear();
$im->destroy();
exit;
?>
@sc0rp10
Copy link

sc0rp10 commented Sep 24, 2015

Из любви к искусству переписал это позорное поделие так, чтобы оно хотя бы не давало ворнингов

<?php
$im = new Imagick();
$count = count($im->queryFonts());
$im->newImage(450, ($count * 25 + 20), new ImagickPixel('white'));

$draw = new ImagickDraw();
$draw->setFillColor(new ImagickPixel('black'));
$draw->setFontSize(20);

foreach ($im->queryFonts() as $i => $font) {
    $draw->setFont($font);
    $im->annotateImage($draw, 10, ($i * 25 + 20), 0, $font);
}

$im->setImageFormat('png');
header('Content-type: image/png');

echo $im->getImageBlob();

$im->clear();
$im->destroy();

@bardex
Copy link
Author

bardex commented Sep 24, 2015

sc0rp10, разница только в echo $im->getImageBlob(); ?
какая версия Imagick и PHP ?

@4exob
Copy link

4exob commented Sep 24, 2015

И как сие чудо работает? шо первое шо второе, белая страница...
Linux linux 4.1.6-1-ARCH #1 SMP PREEMPT Mon Aug 17 08:52:28 CEST 2015 x86_64
PHP Version 5.6.13

Название : imagemagick
Версия : 6.9.2.0-1

@bardex
Copy link
Author

bardex commented Sep 24, 2015

4exob, проверил на 2 разных машинах, прекрасно рисует картинку со всеми шрифтами.
https://yadi.sk/i/_Y07XZHVjJeTZ
попробуйте включить вывод всех ошибок и закоментировать строчку
header('Content-type: image/png'); как вариант может вообще нет доступных шрифтов ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment