В данной статье я предлагаю рассмотреть установку расширения gmagick (GraphicsMagick) для php на WEB-сервере Ubuntu с поддержкой основных форматов (jpeg, png, pdf и tiff)
Все ниже изложенное было сделано на баpе Ubuntu Server 16.04, Apache 2.4 и PHP 7.0
1. Установка основного программного обеспечения
Для начала, установим библиотеки, необходимые для работы с форматами изображений
- bzip2 - сжатие файлов по алгоритму Барроуза—Уилера
- ghostscript gsfonts – в первую очередь, необходимы для работы с pdf
- libfreetype6 – необходимо для работы с использованием шрифтов (например, надписи)
- libjpeg8 libjasper1 – для работы с JPEG
- libpng12 – для работы с png
- libtiff5 – работа с tiff форматом
- graphicsmagick – непосредственно сам gmagick
Установка
sudo apt-get install libtool bzip2 zlib1g ghostscript gsfonts libfreetype6 libjpeg8 libjasper1 libpng12-0 libtiff5 graphicsmagick libgraphicsmagick1-dev
Посмотрим, что получилось (в первую очередь, обращаем внимание на интересующие нас форматы: JPEG-2000 и PNG)
gm version
GraphicsMagick 1.3.23 2015-11-07 Q16 http://www.GraphicsMagick.org/
Copyright (C) 2002-2015 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) no
BZIP yes
DPS no
FlashPix no
FreeType yes
Ghostscript (Library) no
JBIG yes
JPEG-2000 yes
JPEG yes
Little CMS yes
Loadable Modules no
OpenMP yes (201307)
PNG yes
TIFF yes
TRIO no
UMEM no
WebP yes
WMF yes
X11 yes
XML yes
ZLIB yes
Host type: i686-pc-linux-gnu
Configured using the command:
./configure '--build' 'i686-linux-gnu' '--enable-shared' '--enable-static' '--enable-libtool-verbose' '--prefix=/usr' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--docdir=${prefix}/share/doc/graphicsmagick' '--with-gs-font-dir=/usr/share/fonts/type1/gsfonts' '--with-x' '--x-includes=/usr/include/X11' '--x-libraries=/usr/lib/X11' '--without-dps' '--without-modules' '--without-frozenpaths' '--with-webp' '--with-perl' '--with-perl-options=INSTALLDIRS=vendor' '--enable-quantum-library-names' '--with-quantum-depth=16' 'build_alias=i686-linux-gnu' 'CFLAGS=-Wall -g -fno-strict-aliasing -O2' 'LDFLAGS=' 'CXXFLAGS=-Wall -g -fno-strict-aliasing -O2'
Final Build Parameters:
CC = gcc
CFLAGS = -fopenmp -Wall -g -fno-strict-aliasing -O2 -Wall -pthread
CPPFLAGS = -I/usr/include/X11 -I/usr/include/freetype2 -I/usr/include/libxml2
CXX = g++
CXXFLAGS = -Wall -g -fno-strict-aliasing -O2 -pthread
LDFLAGS = -L/usr/lib/X11
LIBS = -ljbig -lwebp -llcms2 -ltiff -lfreetype -ljasper -ljpeg -lpng12 -lwmflite -lXext -lSM -lICE -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp –lpthread
2. Устанавливаем расширение PHP
Данное расширение устанавливается через утилиту PECL
sudo pecl install gmagick-2.0.4RC1
В конце установки мы увидим
Build process completed successfully
Installing '/usr/lib/php/20151012-zts/gmagick.so'
install ok: channel://pecl.php.net/gmagick-2.0.4RC1
configuration option "php_ini" is not set to php.ini location
You should add "extension=gmagick.so" to php.ini
Расширение собралось, теперь добавляем его в конфигурацию php
sudo echo "extension=gmagick.so" >> /etc/php/7.0/mods-available/gmagick.ini
sudo phpenmod gmagick
sudo service apache2 reload
3. Проверяем
Для начала, посмотрим через phpinfo()
Если Вы нашли подобное, все хорошо - это значит, расширение загрузилось и доступно к работе.
И последняя проверка – проверка «боем»
Для это я создал gmagic.php у себя на хостинге с содержимым
<?php
$image = new Gmagick();
$file = 'php.jpg';
$image->readImage($file);
echo '<img src="' . $file . '" /> <br/>';
echo 'Image dimensions: ' . $image->getImageWidth() . ' x ' . $image->getImageHeight() . '<br/>';
echo 'Image format: ' . $image->getImageFormat() . '<br/>';
echo 'Image depth: ' . $image->getImageDepth() . '<br/>';
echo 'Image colors: ' . $image->getImageColors() . '<br/>';
$r = $image->getImageResolution();
echo 'Image resolution: ' . $r['x'] . 'x' . $r['y'] . '<br/>';
$image->destroy();
?>
В результате работы получаем
Для освоения всех возможностей данной библиотеки рекомендую читать официальную справку http://php.net/manual/ru/book.gmagick.php
Если у Вас возникли вопросы, задавайте их в комментариях, буду рад ответить.
Комментариев нет:
Отправить комментарий