Pregunta

Estamos utilizando JAI ( https://jai-imageio.dev.java.net/ ) para escalar y recortar imágenes en Java. Nos gustaría crear esquinas redondeadas en nuestras imágenes. ¿Como hacemos eso?

Las imágenes son JPG y PNG. ¿Creo que es más fácil hacer esto con JPG?

La imagen es una imagen plana de JAI

PlanarImage src = JAI.create(...,...);

que se puede transformar en un objeto java.awt.Graphics

¿Alguien ha hecho esto antes?

¿Fue útil?

Solución

PNG admite un canal alfa transparente, pero JPG no. Por lo tanto, para JPG, también debería elegir un color para pintar el "invisible" parte del rectángulo para las esquinas redondeadas.

Hay una clase java.awt.geom.RoundRectangle2D disponible para hacer esto:

public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    RoundRectangle2D rr = new RoundRectangle2D.Float(50, 50, 200, 100, 10, 10);
    g2d.draw(rr);
}

El método Float () de la clase RoundRectangle2D toma seis argumentos:

  • Los dos primeros representan la ubicación de la esquina superior izquierda.
  • Los argumentos 3 y 4 representan el ancho y la altura del rectángulo redondeado.
  • Los dos últimos argumentos representan el ancho y la altura del arco dibujado en el esquinas.

Entonces, dibuje un rectángulo redondeado que contendrá la imagen que desea que tenga esquinas redondeadas y luego superponga o use una máscara para obtener el efecto deseado.

Otros consejos

¿Qué le impide dibujar las esquinas que desee en el objeto Graphics obtenido de la imagen? No estoy realmente seguro de cuáles son tus `` esquinas redondeadas '' se supone que se parecen, pero puede realizar todas las operaciones de pintura razonables en el objeto Graphics.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top