05.11.2017

gmagick php Ubuntu

В данной статье я предлагаю рассмотреть установку расширения 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

Если у Вас возникли вопросы, задавайте их в комментариях, буду рад ответить.

Комментариев нет:

Отправить комментарий