Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Immagine da JPanel

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    11

    Immagine da JPanel

    Un saluto a tutti,
    volevo sapere se esiste un metodo che permetta di creare un immagine di parte di un JPanel per esempio avendo un JPanel di dimensioni 660x660 e volessi creare un immagine di parte di esso diciamo della metà sinistra del pannello quindi avere un immagine 330x660 come posso fare?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Immagine da JPanel

    Originariamente inviato da Roccia
    volevo sapere se esiste un metodo che permetta di creare un immagine di parte di un JPanel per esempio avendo un JPanel di dimensioni 660x660 e volessi creare un immagine di parte di esso diciamo della metà sinistra del pannello quindi avere un immagine 330x660 come posso fare?
    Parlando proprio in generale, se si vuole avere la "immagine" di un componente si fa tipicamente così: si crea un BufferedImage, si ottiene il suo Graphics(2D), si invoca sul componente print(Graphics g) o printAll(Graphics g), alla fine si fa il dispose() del Graphics.

    Ottenere solo una parte è solo questione di dimensionare opportunamente la immagine e di spostare la origine degli assi nel graphics.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    11
    ciao allora io ho questa parte di codice per ottenere da un jpanel un immagine 660x660

    codice:
    public void creaImm(String nome){ 
    BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB);
    this.printAll(image.getGraphics()); 
    try { ImageIO.write(image, "jpg", new File("./"+nome+".jpg"));
    } 
    catch (IOException e) { e.printStackTrace(); }
    }
    come faccio a fare quello che hai detto tu?
    Devo creare una Graphics2D cosi?
    codice:
    Graphics2D img2D=image.getGraphics()
    e poi come li setto gli assi?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Roccia
    come faccio a fare quello che hai detto tu?
    Devo creare una Graphics2D cosi?
    codice:
    Graphics2D img2D=image.getGraphics()
    In BufferedImage c'è createGraphics() che ritorna un Graphics2D mentre getGraphics() ritorna Graphics.
    E ricorda di fare il dispose().

    Originariamente inviato da Roccia
    e poi come li setto gli assi?
    Se devi prendere la parte sinistra l'origine degli assi va bene dove è ... devi solo creare la immagine larga la metà del componente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    11
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.