2026年9月22日火曜日

画像の4スミの、角を、10%づつ、丸める、Linux、コマンドや、方法

画像の4スミの、角を、10%づつ、丸める、Linux、コマンドや、方法などは、ありますか?、雑学や、業界話を交えながら、解説してください、

はい、あります。Linuxではいくつか定番の方法があります。 一番有名なのは ImageMagick を使う方法です。

方法1 ImageMagick(業界標準)

ImageMagickは、Linuxの画像処理では「Photoshopのコマンドライン版」のような存在です。

インストール

Ubuntu/Debian

sudo apt install imagemagick
 

Fedora

sudo dnf install ImageMagick
 

例えば、

image.png

の四隅を丸くしたい場合。

角を10%程度丸める

画像サイズに対して10%なら、

convert image.png \
  \( +clone -alpha extract \
     -draw "fill black polygon 0,0 0,100 100,0 fill white circle 100,100 100,0" \
  \) \
  -alpha off \
  -compose CopyOpacity -composite \
  rounded.png
 

ただし、この例は固定サイズなので、実際には画像サイズに合わせて半径を計算した方が綺麗です。

ImageMagick 7なら

magick image.png \
  \( -size %[fx:w]x%[fx:h] xc:none \
     -fill white \
     -draw "roundrectangle 0,0 %[fx:w-1],%[fx:h-1],50,50" \
  \) \
  -alpha off \
  -compose CopyOpacity \
  -composite \
  rounded.png
 

方法2 Python + Pillow

Pythonならもっと簡単です。

from PIL import Image, ImageDraw

img = Image.open("image.png").convert("RGBA")

w, h = img.size
r = int(min(w, h) * 0.1)

mask = Image.new("L", (w, h), 0)
draw = ImageDraw.Draw(mask)
draw.rounded_rectangle((0,0,w,h), radius=r, fill=255)

img.putalpha(mask)
img.save("rounded.png")

半径を

画像の短辺 × 10%

としているので、どんなサイズでも自然になります。


方法3 ffmpeg

動画業界では ffmpeg のフィルターでもできます。

ffmpeg -i image.png \
-vf "geq=lum='p(X,Y)':a='if(gt(hypot(...),...),0,255)'" \
rounded.png
 

ただし式が非常に長くなるので、静止画ならImageMagickの方が圧倒的に楽です。


方法4 SVGマスク

Web業界ではSVGがよく使われます。

HTMLなら

border-radius:10%;
 

だけで済みます。


10%とは何か?

実は「10%」にも流派があります。

CSS派

border-radius:10%;
 

幅・高さから割合で計算します。

デザイナー派

FigmaやSketchでは

半径 = 画像短辺 × 10%

で考えることが多いです。

ImageMagick派

ImageMagickには「10%」という指定はなく、

radius = ピクセル

で指定します。

そのため

半径 = min(width,height) × 0.1

へ変換して使います。


業界話

昔(1990年代〜2000年代前半)は、角丸画像を作るにはPhotoshopで毎回加工していました。

その後、

  • CSS3
  • SVG
  • PNGのアルファチャンネル

が普及し、「画像自体を丸める」のではなく「表示時に丸める」のが一般的になりました。

現在でも画像そのものを丸めるケースは、

  • YouTubeサムネイル生成
  • AI画像の前処理
  • ECサイトの商品画像
  • SNSアイコン生成

など、自動生成パイプラインでよく見られます。


雑学

実はAppleが初代iPhoneを発表した2007年頃から、「角丸デザイン」が世界的なトレンドになりました。iOSのアイコンやボタンが角丸だった影響は大きく、その後Android、Windows、Webデザインにも広まりました。

さらに面白いのは、人間は鋭い角を「危険」「硬い」と感じやすく、丸い角を「安全」「親しみやすい」と感じる傾向が心理学やUIデザインで知られています。そのため、現代のアプリやWebサイトでは角丸が標準的なデザインとなっています。


Linuxで一番おすすめの方法

汎用性・速度・スクリプト化のしやすさを考えると、ImageMagick が最もおすすめです。シェルスクリプトから大量の画像を一括処理しやすく、半径を「画像の短辺の10%」として計算すれば、画像サイズが変わってもバランスの良い角丸を自動で適用できます。

0 件のコメント: