人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ImageMagickを利用して、円形に画像を切り出す方法を教えてください。
(やりたい事)
・200x200等の正方形のjpeg画像から、内接する円形部分のみを取り出します。
・取り出した円形部分の周囲は、透過になるようなGIFを作成します。
・与えられる画像は、任意の画像です。(元の画像が円の特徴を持っているわけではない)
宜しくお願いします。

●質問者: mikan_iyokan
●カテゴリ:コンピュータ
✍キーワード:GIF ImageMagick JPEG 作成 正方形
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● hive7134
●35ポイント ベストアンサー

少し手間のかかるやり方ですが

  1. 元画像の上に、円形にくりぬいた200×200のフレーム画像を合成し、いったんフレーム付き状態で出力
  2. フレーム付き画像のフレームの色を透過にする。

という手順ではいかがでしょうか?



コマンドラインでの具体的な操作は以下のようになります。


元画像を「base.jpg」

あらかじめ円形にくりぬいておいた200×200のフレーム画像(中心部分が赤色の円、周囲は白)を「circle.gif」とすると、

convert -transparent red circle.gif circle_t.gif
composite -gravity center circle_t.gif base.jpg circled.bmp
convert -transparent white circled.bmp circled_t.gif

これで「circled_t.gif」として得られます。

◎質問者からの返答

回答ありがとうございます。

早速試してみたのですが、フレームの色がbase.jpgに含まれる色の場合、円の内側にも透ける部分が出来てしまうと思うのですが、どうでしょか。

base.jpgに含まれない色が分かれば良いのですが・・・。

再回答もお待ちしています。


2 ● hive7134
●35ポイント

元画像の白まで透過されてしまうことに言及するのを忘れていました^^;

回答が複数回にわたってしまい、すみません。


この場合はさらに一手間加えて、^^;

というのはいかがでしょうか?

GIFは最大256色ですから、出力結果には白色の変化は現れません。



以下具体例

※限りなく白に近い色(例:RGB(254,255,255)など)で塗りつぶした200×200のbmp画像をnearwhite.bmpとします。

convert -transparent red circle.gif circle_t.gif
convert -transparent white base.jpg base_t.gif
composite base_t.gif nearwhilte.bmp base_w.bmp
composite -gravity center circle_t.gif base_w.bmp circled.bmp
convert -transparent white circled.bmp circled_t.gif

以上です。

色のうまい置換方法が見つからなかったので、かなり回りくどいですね^^;

◎質問者からの返答

回答ありがとうございます。

きちんと円の中は透過させないようにしようとすると、結構手間がかかりますね。

参考にさせていただきます。

画像の色を簡単に置き換える方法は,また後日探してみます.ありがとうございました.

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ