ImageMagick で画像を角丸四角形に切り取る

ImageMagick で画像を角丸四角形に切り取る

ImageMagickを使って次のような画像を変換するにはどうすればいいでしょうか?これ透明な背景に角丸の四角形がある PNG に変換できますか?

セット内のすべての画像にきれいな境界線があるわけではないので、 のようなものではなく、標準化されたマスクを使用して作業することを好みます-trim。 CSS に相当する ImageMagick を実行してborder-radius: 4.75% / 3.5%カードにマスクを適用し、その結果を角丸四角形を含む PNG として保存します。

答え1

ImageMagick のドキュメントを数時間かけて調べた後、その秘訣を見つけました。

まず、マスクとして機能する角丸の長方形を作成します。

convert -size 672x936 xc:black -fill white -draw "roundRectangle 0,0,672,936 32,33" generatedcardmask.png

この仕組みの詳細に興味がある方は、以下をお読みください。ImageMagickの全体的なコマンドライン構造マスクの作成そして図形を描く

角丸長方形の角の幅と高さは、次のように計算しました。

  • 幅: 672px * 4.75% = 31.92px (32px に切り上げ)
  • 高さ: 936px * 3.5% = 32.76px (33px に切り上げ)

これにより、次の PNG が生成されます。

生成された画像

次に、元の画像を取得し、このマスク PNG を使用してアルファ値を置き換えます。

convert tsp-156-fortune-thief.jpg generatedcardmask.png -alpha Off -compose CopyOpacity -composite -colorspace RGB test.png

著作権上の理由から結果をここに掲載することはできませんが、この画像

関連情報