Декілька слів про Imagick - модуля PHP для роботи із зображеннями. Працює з допомогою бібліотеки php_imagick.dll. Однак, ця бібліотека не самостійна, а функціонує за допомогою викликів сторонньої програми ImageMagick, хоча це не заважає виконувати операції доволі швидко.

У стандартну збірку PHP вже входить бібліотека для роботи з зображеннями - GD. І GD і Imagick функціонально схожі, проте остання дає значно якісніший результат при виконанні основних операції. Наприклад, створення ескізів і зображень за допомогою Imagick не лише дає якісніший результат та зменшує витрати оперативної пам’яті, але й швидше приблизно на 10%. Imagick однозначно кращий вибір для роботи із зображеннями.

У порівнянні з GD Imagick явно лідер. Також варто зауважити, що використання ImageMagick можливе і без модуля PHP Imagick за допомогою exec. В цьому випадку обробка зображень буде відбуватися ще швидше.

Дізнатися, чи встановлено Imagick можна виконавши команду phpinfo. Якщо бібліотека вже встановлена, вам відобразиться інформація про класи бібліотеки, підтримувані формати тощо.

Здебільшого, встановлення відбувається після отримання помилки:
Fatal error: Uncaught Error: Class "Imagick" not found in...
Перейдемо по процесу встановлення модуля Imagick.

Спочатку необхідно встановити ImageMagick для Windows (https://imagemagick.org/script/download.php). Останньою версією на момент написання статті є ImageMagick-7.1.0-30-Q16-HDRI-x64-dll.exe.

Після запуску інсталяційного файлу необхідно погодитися з ліцензією та прочитати основну інформацію. Інсталяція відбувається по замовчуванню, тому сміло рухаємося до завершення встановлення.

Далі на сайті https://mlocati.github.io/articles/php-windows-imagick.html завантажуємо архів php_imagick-3.7.0-8.1-ts-vs16-x64.zip для версії PHP 8.1 Thread Safe x64. Копіюємо файл php_imagick.dll з архіву у піддиректорію ext директорії PHP, після чого підключаємо його, додавши рядок у файл php.ini:
extension=php_imagick
Встановлення ImageMagick можна порівняти зі встановленням MariaDB. Тобто для повноцінної роботи з базою даних однієї бібліотеки не достатньо, необхідне додаткове програмне забезпечення, до якого можна звертатися через бібліотеку методом PHP, так і напряму без використання інтерпретатора.

Перевірити успішність інсталювання Imagick можна завантаживши в корінь сайту зображення image.jpg за виконавши наступний код:
$imagick = new Imagick($_SERVER['DOCUMENT_ROOT'].'/image.jpg');
$imagick->setCompression(imagick::COMPRESSION_JPEG);
$imagick->setCompressionQuality(100);
$imagick->stripImage();
$imagick->writeImage($_SERVER['DOCUMENT_ROOT'].'/newimage.jpg');
Якщо у вас створилося зображення newimage.jpg, тоді все успішно працює.

Для роботи з PDF документами необхідно також встановити ghoscript (https://ghostscript.com/releases/gsdnld.html).