mieki256's diary



2012/07/12(木) [n年前の日記]

#1 [cg_tools] 画像を何度か回転させて1枚の画像に連結

忘れそうなので作業手順をメモ。

アルファチャンネルを持った画像、hoge.png があるとする。

ImageMagick の convert を使って画像を回転させる。
convert -rotate -45 hoge.png hoge_m45.png
convert -rotate -30 hoge.png hoge_m30.png
convert -rotate -15 hoge.png hoge_m15.png
convert -rotate 15 hoge.png hoge_p15.png
convert -rotate 30 hoge.png hoge_p30.png
convert -rotate 45 hoge.png hoge_p45.png
-rotate N の指定で、N度回転させた画像が出力できる。

これで、-45,-30,-15,+15,+30,+45度に回転させた画像が得られた。しかし、画像サイズがそれぞれ異なるサイズになり、また、画像の一部に無駄な不透明部分が出来てしまっている。

GIMPで開いて、画像サイズの統一、不透明部分の消去(透明化)を行う。
  1. ひとまず、画像サイズが一番大きい画像を開く。
  2. 回転させた全ての画像をレイヤーとして開く。ファイル→レイヤーとして開く。Ctrl や Shift を押しながら選択すれば、複数ファイルが選択できて、一気にレイヤーとして読み込めるはず。
  3. 一番最初に開いた画像(レイヤー一覧で「背景」と名前がついてるはず)は、オフセット値等がおかしくなってるので、そのレイヤーは削除。
  4. 画像をトリミングする。矩形選択ツールで領域を選択。画像→選択範囲で切り抜き。
  5. 不透明部分を削除して透明にする。ファジー選択ツール等で選択して、消去(おそらくDeleteキー)。
  6. レイヤー毎に別画像として保存。continuous-save.scm を使用。
連番画像、001.png 〜 007.png が得られたとする。

ImageMagick の convert で、画像を結合?連結?して1枚の画像にする。
convert -append 0*.png out.png
-append を指定すると、垂直方向に画像を連結して1つの画像にしてくれる。+append なら、水平方向に連結。画像サイズはすべて同じにしておく必要がある。上記の例では、元画像の指定に _ワイルドカード を使って、0*.png と書いている。

少しずつ回転した画像が垂直にずらりと並んだ、out.png が得られた。

GIMP の Script-fu で処理ができそうな気もするが…。

以上です。

過去ログ表示

Prev - 2012/07 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project