14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LaravelにImageMagick(最新版)をインストールして使用する

Posted at

動作環境

  • CentOS7
  • PHP 7.2.6
  • Laravel 5.5

注意点

installするパッケージのURLが頻繁に変わる可能性があるため、以下を参照しながらインストールしてください

1. imageMagickのインストール

まず、CentOS7本体にImageMagickをインストールします。

  1. imageMagickの依存関係であるパッケージをインストール

    # openjpeg2 
    # imageMagick-develインストールのために必要
    $ yum install https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/lib64openjp2_7-2.3.0-2.mga7.x86_64.rpm
    $ yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm
    $ yum install fftw3
    $ yum install libXt
    $ yum install libtool-ltdl
    
  2. imageMagickのインストール

    # imageMagick-libs
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-12.x86_64.rpm
    
    # imageMagick
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.8-12.x86_64.rpm
    
    # imageMagick-devel
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-devel-7.0.8-12.x86_64.rpm
    
  3. 以下のコマンドを叩いて、バージョンが確認できればOK

    $ convert -version
    Version: ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
    

Copyright: © 1999-2018 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP
Delegates (built-in): bzlib cairo djvu fftw fontconfig fpx freetype gslib jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff webp wmf x xml zlib
```

2. Peclをインストールする

PHPにimageMagickをインストールするために必要です

  1. peclのインストール

    # peclのインストール
    $ wget http://pear.php.net/go-pear.phar
    
  2. phpで実行するための設定を行う

    以下のコマンドを実行した際に設定の確認があるが、Enterを押せばOK

    $ php go-pear.phar
    

3. PHPにImageMagickを適応させる

  1. 以下のコマンドを実行し、適応させる

    $ pecl install imagick
    
  2. php.iniを編集

    # このコマンドでphp.iniの場所が確認できます
    $ php -i | grep "Loaded Configuration File"
    
    # Dynamic Extensionsの項目より下に以下のコードを記述
    extension=imagick.so
    
  3. apacheサーバの再起動

    $ service httpd restart
    
  4. php-fpmの再起動

    $ service php-fpm restart
    
  5. phpにインストールされているかを確認する

    $ php -i | grep Imagick
    imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
    

Imagick compiled with ImageMagick version => ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
```

```
$ php -i | grep -Ei '^(gd|imagic|gmagic|imagemagick)' | grep enabled
GD Support => enabled
imagick module => enabled
```

intervention/imageのインストール

  • intervention/imageとは?

    phpで画像加工ができるライブラリで、ImageMagickまたはGDライブラリを選択して画像加工ができます。

  1. composerでインストール

    $ composer require intervention/image
    
  2. laravelのapp/config/app.phpに以下を記述

    'providers' => [
        .
        .
        .
        /*
         * Package Service Providers...
         */
        # 以下のコードを記述
        Intervention\Image\ImageServiceProvider::class,
    ]
    
    'aliases' => [
        .
        .
        .
        'Image' => Intervention\Image\Facades\Image::class
    ]
    
  3. Intervention/imageのデフォルトを変更する

    Intervention/imageで使用するライブラリのデフォルトがGDなので、変更する

    # 設定ファイルを生成する
    php artisan vendor:publish
    

    config/image.phpに以下の記述を行い、設定する

    'driver' => 'imagick'
    
  4. intervention/imageの動作確認

    <?php
    .
    .
    .
    use Intervention\Image\Facades\Image;
    .
    .
    .
    public function convertImage() 
    {
        $image = Image::make('image.png')->encode('jpg');
        $path = public_path() . '.jpg';
        $image->save($path);
    }
    

以上です。 お疲れ様でした。

参考

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?