
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
著作権上の理由から結果をここに掲載することはできませんが、この画像。