본문 바로가기

리눅스

PHP ImageMagick(imagick) 확장 모듈을 설치하는 방법

728x90

PHP ImageMagick(imagick) 확장 모듈을 설치하는 방법

PHP ImageMagick 확장 모듈은 PHP에서 ImageMagick을 사용할 수 있도록 해주는 모듈입니다. 이 모듈을 설치하면 PHP에서 이미지를 변환, 크기 조정, 색상 변경, 텍스트 추가 등 다양한 작업을 수행할 수 있습니다.

 

  • php 버전 확인
$ php -v
PHP 7.3.29 (cli) (built: Jul  7 2021 17:34:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.29, Copyright (c) 1999-2018, by Zend Technologies
  • ImageMagick 설치
yum install -y ImageMagick ImageMagick-devel

PHP ImageMagick 확장 모듈 다운로드

PHP ImageMagick 확장 모듈은 PHP 확장 모듈 저장소(PECL)에서 다운로드할 수 있습니다.

pecl install imagick
---output---
Build process completed successfully
Installing '/usr/lib64/php/modules/imagick.so'
Installing '/usr/include/php/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.5.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini

php.ini 파일에 확인 모듈 추가

echo "extension=imagick.so" >> /etc/php.ini

imagick 모듈 확인

php -m | grep -i imagick
$ php -m | grep -i imagick
imagick

 

php -i | grep -i imagick
$ php -i | grep -i imagick
imagick
imagick module => enabled
imagick module version => 3.5.1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 6.9.10-68 Q16 x86_64 2021-02-02 https://imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.9.10-68 Q16 x86_64 2021-02-02 https://imagemagick.org
imagick.allow_zero_dimension_images => 0 => 0
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.set_single_thread => 1 => 1
imagick.shutdown_sleep_count => 10 => 10
imagick.skip_version_check => 0 => 0

웹 서버 재기동 필요

systemctl restart nginx php-fpm
728x90

p1

PHP에서 ImageMagick 사용

PHP ImageMagick 확장 모듈을 설치하면 PHP에서 다음과 같은 코드를 사용하여 ImageMagick을 사용할 수 있습니다.

<?php

// ImageMagick을 사용하여 이미지를 변환합니다.
$image = new Imagick('image.jpg');
$image->resize(200, 200);
$image->save('image-resized.jpg');

// ImageMagick을 사용하여 이미지의 크기를 조정합니다.
$image = new Imagick('image.jpg');
$image->resize(array('width' => 200, 'height' => 200));
$image->save('image-resized.jpg');

// ImageMagick을 사용하여 이미지의 색상을 변경합니다.
$image = new Imagick('image.jpg');
$image->filter('grayscale');
$image->save('image-grayscale.jpg');

// ImageMagick을 사용하여 이미지에 텍스트를 추가합니다.
$image = new Imagick('image.jpg');
$image->draw('text 50,50 Hello, world!');
$image->save('image-text.jpg');

// ImageMagick을 사용하여 이미지를 합성합니다.
$image1 = new Imagick('image1.jpg');
$image2 = new Imagick('image2.jpg');
$image = new Imagick();
$image->composite($image1, 0, 0, Imagick::COMPOSITE_OVER, 1);
$image->composite($image2, 50, 50, Imagick::COMPOSITE_OVER, 1);
$image->save('image-composite.jpg');
?>

이 코드를 실행하면 다음과 같은 이미지가 생성됩니다.

image-resized.jpg
image-grayscale.jpg
image-text.jpg
image-composite.jpg

PHP ImageMagick 확장 모듈을 사용하여 이미지를 변환, 크기 조정, 색상 변경, 텍스트 추가, 이미지 합성 등 다양한 작업을 수행할 수 있습니다.

 

728x90