Domanda

Stiamo usando JAI ( https://jai-imageio.dev.java.net/ ) per ridimensionare e ritagliare le immagini in Java. Vorremmo creare angoli arrotondati sulle nostre immagini. Come lo facciamo?

Le immagini sono JPG e PNG. Penserei che sia più facile farlo con i JPG?

L'immagine è un'immagine planare di JAI

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

che può essere trasformato in un oggetto java.awt.Graphics

Qualcuno l'ha già fatto prima?

È stato utile?

Soluzione

PNG supporta un canale alfa trasparente, ma JPG no. Quindi, per JPG dovresti anche scegliere un colore per dipingere il "invisibile" parte del rettangolo per gli angoli arrotondati.

Esiste una classe java.awt.geom.RoundRectangle2D disponibile per fare questo:

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

Il metodo Float () della classe RoundRectangle2D accetta sei argomenti:

  • I primi due rappresentano la posizione dell'angolo in alto a sinistra.
  • Gli argomenti 3 e 4 rappresentano la larghezza e l'altezza del rettangolo arrotondato.
  • Gli ultimi due argomenti rappresentano la larghezza e l'altezza dell'arco disegnato in angoli.

Quindi, disegna un rettangolo arrotondato che conterrà solo l'immagine che desideri avere gli angoli arrotondati e quindi sovrapponi o usa una maschera per ottenere l'effetto desiderato.

Altri suggerimenti

Cosa ti impedisce di disegnare qualsiasi angolo ti piaccia sull'oggetto Graphics ottenuto dall'immagine? Non sono davvero sicuro di quali siano i tuoi "angoli arrotondati" dovrebbero apparire come, ma è possibile eseguire tutte le operazioni di disegno ragionevoli sull'oggetto Grafica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top