ImageMagick
画像を切り取り、統合、変換、加工するためのツール、及び、ライブラリ。
公式サイト:
概要
参考:
ダウンロード
入手:
Download | ImageMagick [Official]
Index of Binaries | ImageMagick [Official]
インストール
参考:
Windows 10 に ImageMagick をインストールする | イノベートな非日常
使い方
ドキュメント:
Command-Line Processing | ImageMagick [Official]
参考:
Batch Resize Images using Linux Command Line and ImageMagick | WP Bullet Guides
Convert an Image File from One Format to Another | microHOWTO
Windows で使う
参考:
ImageMagick を使う Windows 編 – Qiita
Windows 10 で ImageMagick を使ってコマンド一発で超簡単に GIF アニメを作成してみた! | あいしんくいっと
convert コマンド
ドキュメント:
Convert | ImageMagick [Official]
参考:
convert コマンドの使い方 | UNIX/Linux の部屋
オプション
参考:
よく使われるオプション | ImageMagick の使い方 日本語マニュアル
加工前後の画像付き! ImageMagick のオプションを最高に分かりやすく解説してみた | bitA Tech Blog
画像の情報を取得する
- 画像形式を確認する
- 画像サイズを確認する
- 色空間/カラープロファイルを確認する
Linux / Mac
$ identify picture.png
Windows
> magick identify picture.png
ドキュメント:
Identify | ImageMagick [Official]
参考:
画像の情報を取得する | ImageMagick の使い方 日本語マニュアル
How can I tell if my image is CMYK from Linux command line? – Super User
How to find the color profile/space used by a photo? – Photography Stack Exchange
画像形式を変換する
ドキュメント:
Convert – Command-Line Tools | ImageMagick [Official]
参考:
ImageMagick の JPEG オプション – Qiita
画像形式/フォーマットの変換 | ImageMagick の使い方 日本語マニュアル
ImageMagick で PNG の形式を変換 | awm-Tech
force output file format – Stack Overflow
argument to specify output format – Stack Overflow
リサイズする (-resize)
ドキュメント:
-resize | ImageMagick [Official]
Image Geometry | ImageMagick [Official]
参考:
画像の拡大/縮小 | ImageMagick の使い方 日本語マニュアル
mogrify コマンドで画像を一括でリサイズする | アナライズギア開発ブログ
出力ファイル名を指定する
グロブしたファイルの形式を変換する。
$ magick convert *.png -set filename:base "%[basename]" "%[filename:base].jpg"
もしくは、mogrify
コマンドを使用する。(※ mogrify
コマンドは出力ファイルを明示的に指定しない場合、基本的に上書きで処理するため注意する。)
$ mogrify -format jpg *.png
ドキュメント:
Format and Print Image Properties | ImageMagick [Official]
参考:
mogrify で出力ファイル名を変える | R.A. Epigonos et al.
convert to keep same name for converted image – Stack Overflow
keep file names and add prefixes – Stack Overflow
Can magick rename output file the same as input file with additional numbering? – Super User
画像を切り取る
-crop
-trim
-shave
参考:
Can ImageMagick generate multiple outputs from one input? – Stack Overflow
カラープロファイルを変換する
参考:
ImageMagick で手軽にカラープロファイルを付与変換する | sirokiri
RGB 画像を CMYK に変換する | やんま まの blog (仮)
ImageMagick convert CMYK pdf to RGB jpeg or PNG and preseerve colors – Stack Overflow
-colorspace オプション
$ magick original.jpg -colorspace RGB -resize 200x200 -colorspace sRGB thumbnail.jpg
ドキュメント:
-colorspace | ImageMagick [Official]
Color Management | ImageMagick [Official]
参考:
How to set a particular color space for the output – Stack Overflow
-gamma オプション
$ convert original.jpg -gamma .45455 -resize 400x400 \ -gamma 2.2 -quality 92 converted.jpg
ドキュメント:
-gamma – Command-line Options | ImageMagick [Official]
-gravity オプション
参考:
ImageMagick Gravity 指定 – Qiita
-profile オプション
入出力ファイルのカラープロファイルを明示的に指定する。
ドキュメント:
-profile | ImageMagick [Official]
-intent オプション
カラープロファイルの変換時に用いるレンダリングインテントを指定する。
Perceptual
(デフォルト)Saturation
Absolute
Relative
ドキュメント:
-intent | ImageMagick [Official]
-black-point-compensation オプション
カラープロファイルの変換で黒点補正を有効にする。
ドキュメント:
-black-point-compensation | ImageMagick [Official]
Hald CLUT を適用する (-hald-clut オプション)
ドキュメント:
-hald-clut | ImageMagick [Official]
mogrify コマンド
ドキュメント:
Mogrify – Command-Line Tools | ImageMagick [Official]
参考:
mogrify コマンドで画像を一括でリサイズする | アナライズギア開発ブログ
mogrify コマンドで画像を一括変換しよう | ハトネコエ Web がくしゅうちょう
複数のファイルをまとめて処理する
参考:
How to pass multiple file names? – Stack Overflow
Bash globbing pattern matching for ImageMagick recursive convert to PDF – Stack Overflow
グロブを使う
参考:
Output file globbing – ImageMagick Discussions Archive
globbing multiple extensions – Unix & Linux Stack Exchange
GIF アニメーション
参考:
ImageMagick と FFmpeg を利用して GIF アニメと MP4 動画を生成してみましょう | 丸ノ内テックブログ
SVG 画像を PNG 形式に変換する
magick
コマンドに convert
サブコマンドを渡して SVG 画像を PNG 形式に変換する。
$ magick convert -density 360 vector.svg picture.png
参考:
ImageMagick で SVG to PNG | matablo
how to set quality when convert svg to png – ImageMagick Board
How to convert a SVG to a PNG with ImageMagick? – Stack Overflow
Convert and resize SVG to PNG – Stack Overflow
PSD 画像を PNG 形式に変換する
$ magick convert -strip texture.psd[0] output.png
参考:
ImageMagick を使って PSD から PNG の一枚絵を生成するコマンドについて | ウェブエンジニア珍道中
画像形式
ドキュメント:
Image Formats | ImageMagick [Official]
Supported Image Formats | ImageMagick [Official]
参考:
File Format Problem | Just Solve
脆弱性
Web サービスなどにおいて ImageMagick を用いてユーザー由来のファイルを処理する場合は、最低限、次のような脆弱性対策が望まれる。
policy.xml
で処理対象を JPEG / PNG / GIF / WebP のみに限定する。- 画像フォーマットの判別には純粋にマジックバイトで MIME Type を判別するライブラリを用いる。
参考:
「さようなら ImageMagick」の考察 – Qiita
ImageMagick を使う Web アプリのセキュリティ #1 既知の脆弱性、システム情報の漏洩 | MBSD Blog
ImageMagick を使う Web アプリのセキュリティ #2 DoS | MBSD Blog
ImageMagick を使う Web アプリのセキュリティ #3 XSS/アクセス制御 | MBSD Blog
Clearing Up Some Misconceptions Around the “ImageTragick” Bug | lcamtuf’s blog
ドキュメント
Command-Line Tools | ImageMagick [Official]
Command-Line Processing | ImageMagick [Official]
Command-Line Options | ImageMagick [Official]
リポジトリ
ImageMagick/ImageMagick: ImageMagick 7 – GitHub
リンク
Windows ビルド
参考:
ImageMagick/ImageMagick-Windows: Windows Build of ImageMagick 7 – GitHub