Saltar al contenido

Configuración de esquinas redondeadas para svg: imagen

Solución:

‘border-radius’ no se aplica a svg: elementos de imagen (todavía de todos modos). Una solución alternativa sería crear un rectángulo con esquinas redondeadas y utilizar una ruta de recorte.

Un ejemplo.

La parte relevante de la fuente:

<defs>
    <rect id="rect" x="25%" y="25%" width="50%" height="50%" rx="15"/>
    <clipPath id="clip">
      <use xlink:href="https://foroayuda.es/#rect"/>
    </clipPath>
  </defs>

  <use xlink:href="https://foroayuda.es/#rect" stroke-width="2" stroke="black"/>
  <image xlink:href="boston.jpg" width="100%" height="100%" clip-path="url(#clip)"/>

También es posible crear varios elementos rect en lugar de usar <use>.

Para aquellos que solo estén interesados ​​en hacer avatares redondeados, aquí va un ejemplo usando d3 v4. Tenga en cuenta que debe aplicar el recorte mientras la imagen está en (0,0), por lo que debe traducir () la imagen a donde la desee.

import { select } from 'd3-selection';

const AVATAR_WIDTH = 80;
const avatarRadius = AVATAR_WIDTH / 2;
const svg = select('.my-container');
const defs = this.svg.append("defs");
defs.append("clipPath")
  .attr("id", "avatar-clip")
  .append("circle")
  .attr("cx", avatarRadius)
  .attr("cy", avatarRadius)
  .attr("r", avatarRadius)
svg.append("image")
  .attr("x", 0)
  .attr("y", 0)
  .attr("width", AVATAR_WIDTH)
  .attr("height", AVATAR_WIDTH)
  .attr("xlink:href", myAvatarUrl)
  .attr("clip-path", "url(#avatar-clip)")
  .attr("transform", "translate(posx, posy)")
  .append('My username')
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *