您的位置:

CSS 实现图片圆角

一、使用 border-radius 属性实现图片圆角

使用 CSS 的 border-radius 属性可以实现图片圆角。通过设置该属性的值即可控制图片的圆角度数。

<img src="your-image-url" alt="your-image-description" style="border-radius: 50%;">

上述代码片段会将图片设置为圆形,其 border-radius 属性的值为 50%。

二、使用 clip-path 属性实现图片圆角

除了使用 border-radius 属性,还可以使用 clip-path 属性实现图片圆角。该属性接受的值是一个路径,在路径的区域内呈现图片。

<img src="your-image-url" alt="your-image-description" style="clip-path: circle(50%);">

上述代码片段会将图片设置为圆形,其 clip-path 属性的值为 circle(50%)。

三、使用 mask-image 属性实现图片圆角

css mask-image 属性也可以实现图片圆角效果。mask-image 属性可以将所选元素填充为半透明的蒙板,其最终效果与 clip-path 类似。

<img src="your-image-url" alt="your-image-description" style="mask-image: url(your-mask-image-url); mask-size: cover;">

上述代码片段会为图片添加遮罩,遮罩图片为 your-mask-image-url,同时使用 mask-size 属性设置遮罩图片的大小覆盖整个元素。遮罩图片的形状会影响到元素的形状。

四、使用 SVG 实现图片圆角

SVG 可以创建矢量图形,因此也可以用于实现图片圆角,具体步骤如下:

  1. 使用 SVG 的 <clipPath> 元素创建路径
  2. 使用 SVG 的 <image> 元素引用所需图片
  3. <image> 元素的 clip-path 属性设置为刚才创建的路径的 id 即可
<svg width="0" height="0" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
  <clipPath id="myClip">
    <circle cx="100" cy="100" r="100" />
  </clipPath>
</svg>

<img src="your-image-url" alt="your-image-description" style="clip-path: url(#myClip);">

上述代码片段将创建一个圆形路径,然后将该路径应用于图片。

五、使用 canvas 实现图片圆角

在 canvas 中,可以使用 globalCompositeOperation 属性将两个图像合并,从而实现圆角效果。具体步骤如下:

  1. 在 canvas 上绘制一个圆形路径
  2. 将图片绘制到圆形路径上
  3. 设置 globalCompositeOperation 属性为 source-in
<canvas id="myCanvas" width="200" height="200"></canvas>

<script>
  var canvas = document.getElementById("myCanvas");
  var ctx = canvas.getContext("2d");
  var img = new Image();
  img.onload = function() {
    // 绘制圆形路径
    ctx.beginPath();
    ctx.arc(100, 100, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    // 绘制图片
    ctx.drawImage(img, 0, 0, 200, 200);

    // 设置属性,合并图像并显示
    ctx.globalCompositeOperation = "source-in";
    ctx.fillStyle = "white";
    ctx.fillRect(0, 0, 200, 200);
  }
  img.src = "your-image-url";
</script>

上述代码片段将创建一个 canvas 元素,然后使用 getContext("2d") 获取 2D 渲染上下文。在图片加载完成后,绘制圆形路径,将图片绘制到 canvas 上,然后将 globalCompositeOperation 属性设置为 source-in,最后填充白色矩形,合并图像并在 canvas 上显示。