Vagrant (CentOS7) 환경에 ImageMagick을 도입하여 이미지 변환

11575 단어 PHPImageMagickVagrant
업무로 ImageMagick 사용해 TIFF 변환하는 일이 있었으므로, 싹둑 환경 구축으로부터 사용법까지 메모 쓰기.
ImageMagick은 TIFF에 한하지 않고 여러가지 포맷을 서포트하고 있는 것 같기 때문에 상당히 편리할지도.

가상 환경 구축에 필요한 설치



vagrant와 VirtualBox 도입
htps //w w.ぃr 쭉 l보 x. 오 rg / uuki / Dow wu a ds
htps //w w.ゔぁ 란츠 p. 이 m/두w응아 ds. HTML

가상 환경 구축 (CentOS7)



Vagrant 초기 설정과 관련하여 이미 많은 사람들이 Qiita에 게시되었으므로 간단한 절차 만 설명합니다.

CentOS 박스를 데리러 초기화.
//box追加
vagrant box add centos7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

//初期化
vagrant init centos7

작성된 Vagrantfile의 내용으로 이하 소스의 코멘트 아웃을 제외한다.
config.vm.network "private_network", ip: "192.168.33.10"

vagrant 기동하고 ssh로 로그인 할 수 있는지 확인.
//vagrant起動
vagrant up

//ユーザ・パスワードはvagrant
//接続可能なのは設定ファイルのconfig.vm.networkで設定したIPアドレス

CentOS 환경을 최신화하여 apache 및 PHP 도입



이것은 하지 않아도 좋기 때문에 하고 싶은 사람만 한다.
yum update

다만 yum update를 실시했을 경우, 재차 vagrant 기동시에 에러 표시된다. 아무래도 yum update로 커널이 갱신된 것으로 VirtualBox의 Guest Additions가 동작하지 않게 되어, vagrant up 도중에 공유 폴더의 마운트에 실패하고 있었다는 것이 이 에러의 원인이라든지. 이하 링크처에 대응 방법이 기재되어 있다.
htp : // bg. 조 ps 치 ps. 네 t/bぉg/2014/09/08/ゔぁg란 tp로 bぇm-우우 th-유유-p다테/
//apacheインストール
yum install httpd

//普通にyum叩くと古いバージョン持ってくるのでリポジトリから取得
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

//古いバージョンが入っていたら一応消す
rpm -qa | grep php
yum remove php-*

//PHPインストール
yum install --enablerepo=remi,remi-php56 php php-common php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

이번에는 PHP5.6이지만 7 넣고 싶은 사람은 7을 설치할 수 있어.

ImageMagick 라이브러리 설치



이미지 변환에 필요한 라이브러리 정보


도서관
내용


ImageMagick
C 언어로 작성된 이미지 처리 라이브러리

ImageMagick-devel
C 언어로 작성된 이미지 처리 라이브러리

imagick
PHP에서 ImageMagick을 호출하는 데 필요한 라이브러리


명령으로 변환하는 경우는 imagick 불필요.
이하 실행하면 일단 ImageMagick은 인스톨 할 수 있지만 최신 버전을 원한다면 rpm 실행

다운로드 대상 : htps //w w. 이마게마기 ck. 오 rg / sc 리 pt / 비나 ry- ぇ 아세 s. php
//古いバージョンで良いならyum経由
yum -y install ImageMagick
yum -y install ImageMagick-devel

//新しいのが欲しいなら自分でも持ってきて実行
rpm -Uvh ImageMagick-libs-7.0.3-10.x86_64.rpm
rpm -Uvh ImageMagick-7.0.3-10.x86_64.rpm

PHP에서 호출하고 싶은 경우에는 imagick도 설치.
//imagickインストール
pecl install imagick

인스톨 후,/etc/php.ini중에 「extension=imagick.so」추기해 재기동 후, Imagick을 사용할 수 있는지 확인.



자신의 경우, TIFF 화상을 PDF나 JPG로 할 필요가 있었으므로 convert 커멘드 실행.
convert 変換対象ファイル.tiff 変換後ファイル.pdf
convert 変換対象ファイル.tiff 変換後ファイル.jpg

PHP에서도 Imagick을 사용할 수 있는지 확인.
<?php

//サンプル
$filename = '/var/www/html/test.jpg';
$image = new Imagick($filename);
$image->setImageFormat('gif');

header("Content-Type: image/gif");
echo $image;
$image->clear();

convert로 TIFF 변환할 때, 파일에 따라서는 Tag가 지원되지 않는 메시지가 상당히 표시된다. 일단 변환해 열람은 할 수 있지만 에러 내용이 사라지지 않고 기색이 나쁘다.
convert: Unknown field with tag 32931 (0x80a3) encountered. TIFFReadDirectory @ warning/tiff.c/TIFFWarnings/918.
convert: Unknown field with tag 32934 (0x80a6) encountered. TIFFReadDirectory @ warning/tiff.c/TIFFWarnings/918.
convert: 2015120824-0077.tif: Null count for "Tag 32934" (type 4, writecount -3, passcount 1). _TIFFVSetField' @ error/tiff.c/TIFFErrors/565.

해외에서도 같은 사건에 조우하는 분이 있지만, libtiff의 버그에서는! ? 라고 적혀있는 것만으로 해결책은 발견되지 않고 .... TIFF 자체가 좋든 나쁘든 자유도가 높은 포맷답게 변환시에는 여러가지 문제 있는 것 같지만, jpg·pdf·png 등 메이저소이면 충분히 사용할 수 있다고 생각되어...

좋은 웹페이지 즐겨찾기