概要
HTML では、選択したDOM要素に対し、CSS で border-radius: XXpx; とすれば、対象の角を丸めることが可能です。
SVG でも、rect 要素の rx、ry を指定すると css の定義と同じように角を丸めることができます。
ただ、今後見直されるかもしれませんが、image 要素には rx、ry オプションが使用できないようです。
やりたいのは image 要素の角を丸めること。
HTML の場合
HTML で DOM 要素の角を丸めることは、CSS で定義可能です。

|
1 2 |
<img src="imagefile" style="width: 150px; border-radius: 10px;" /> |
SVG の場合
rect を丸める
rect 要素の角を丸める方法は、以下の通り、オプションでサポートされています。
|
1 2 3 |
<svg width="100" height="100"> <rect width="100" height="100" x="0" y="0" rx="10" fill="black"/> </svg> |
imageを丸める
今の所、一番楽かな?と思うのは clipPath を使用して、角の丸まった rect でクリッピングすることですかね。
他にもっといい方法を見つけたらアップデートしたいと思います。
|
1 2 3 4 5 6 7 8 |
<svg width="150" height="205"> <defs> <clipPath id="clip-path"> <rect width="150" height="205" x="0" y="0" rx="10" /> </clipPath> </defs> <image clip-path="url(#clip-path)" width="150" height="205" x="0" y="0" xlink:href="imagefile" /> </svg> |