7 写真の複写と ImageMagick

写真を自分でスキャンして、ネットプリントで複写しようと考えた (まあ、自分でインクジェット式のプリンターを買えば、 自由度があがって良いのかもしれないけど、自宅にしても研究室にしても、 あまりスペースないんだよなあ…)。 文書の印刷と違い、直接USB メモリなどで持ち込んで印刷する場合と比べて、 特に割高になるわけでないし (どちらも30円/枚みたい)、 エラーメッセージが詳し目であるようなので便利である。

ImageMagick を使って、簡単な画像処理をする。 ImageMagick は複数のツールの集合体である。 各ツールの使い方については、 上のサイトの Tools で調べることが出来る (特に convert とか、 その -resize オプションで用いる geometry については、 Image Geometry とか)。 なお、ソースプログラム一式 ImageMagick.tar.gz をバラすと、 www というディレクトリィが現れ、 その中に同じ文書が入っている。

ネットプリント で写真を印刷する場合の画像フォーマットは、 JPEG のみ。 仕様・注意制限事項 によると (2016/5/15時点では)

とある。それ以外にもカラータイプが CMYK ではダメであるとかの制限がある (「本サービスは、YCbCr以外のカラータイプには対応していません。(1702)」)。

とにかくピクセル数が多いとプリントしてくれない。 画像ファイルのピクセル数は、 例えば
identity 画像ファイル名
identity -verbose 画像ファイル名
等で調べることが出来る。
convert -resize 50% 入力画像.jpg 出力画像.jpg
convert -resize 1024x 入力画像.jpg 出力画像.jpg
のようにして適当なところまで落とす。

アスペクト比 (縦横比) を直すについては、トリミング (cropping? -- トリミングは本当はハサミを使う方だそうだ) で良ければ、 例えば OS X の Preview で開いて、適当な領域をマウスで選択して、 コピーしてから、 [ファイル] の ``クリップボードから新規作成'' を選んで、保存すれば良い。 画像すべてをプリントしたい場合は、適当な大きさの白い画像を作っておいて、 そこにペーストすれば良いのだろうか (こちらはまだ試したことがない)。

カラースペースの変換をするには、 convert -colorspace 名前 入力画像 出力画像 をする。 どういう値が選択できるかは、 convert -list colorspace とすれば表示される。 ネットプリント向けには
convert -colorspace YCbCr もと画像.jpg 出来上がり.jpg
とすれば良い。

普段使っている ImageMagick と Preview で、とりあえずは何とかなった。

桂田 祐史
2018-03-01