Imagickで、解像度とかモードとかを変更する

August 5, 2009,
tags: imagick php


このエントリーをはてなブックマークに追加

Imagickで画像を解像度を変更したり、CMYKからRGBに変換する処理を作ってみました。
でも、40MBあるファイルを変換したら、処理に30分以上かかってしまった。。

バッチ処理としては実用的かもしれませんね。

とりあえずソースコード乗せておきます。

#/user/bin/php -q
$img = new Imagick('sample.jpg');
$img->setImageResolution(72,72); //解像度を72dpiに変更
$img->setImageColorspace(1) //RGBにする
$img->thumbnailImage(2880,2880,true); //サイズを変更 縦横費を維持する
$img->writeImage('test.jpg');
$img->destroy();

という感じです。

setImageColorspaceは引数がintになっていましたが、数値の意味は以下のような感じになっています。

0 - UndefinedColorspace
1 - RGBColorspace
2 - GRAYColorspace
3 - TransparentColorspace
4 - OHTAColorspace
5 - LABColorspace
6 - XYZColorspace
7 - YCbCrColorspace
8 - YCCColorspace
9 - YIQColorspace
10 - YPbPrColorspace
11 - YUVColorspace
12 - CMYKColorspace
13 - sRGBColorspace
14 - HSBColorspace
15 - HSLColorspace
16 - HWBColorspace
comments powered by Disqus