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

Twitter ツイート Hatena Bookmark ブックマーク

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

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

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

1
2
3
4
5
6
7
#/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になっていましたが、数値の意味は以下のような感じになっています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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
Built with Hugo
テーマ StackJimmy によって設計されています。