Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Ottenere dimensioni immagine

    Salve a tutti,
    ho importato una piccola immagine in una mia classe e mi serve di estrarre sia la larghezza che l'altezza di questa, solo che non so come fare.
    Se uso getWidth() mi da' errore.
    Come devo fare???
    Vi posto il mio codice:

    codice:
    // Package importati
    import java.awt.*; // Package delle classi grafiche
    import java.awt.image.*;
    
    // Classe per manipolare le immagini
    class Computa
    {
    	// Variabili d'istanza
    	int width; // Larghezza dell'immagine originale
    	int height; // Altezza dell'immagine originale
    	Image image; // Variabile dell'immagine originale
    	int[] immOrig; // Array di int con i pixel dell'immagine originale
    	medianFilter mediana; // Oggetto che applichera' il filtro mediana
    	
    	// Costruttore
    	Computa()
    	{
    		image=Toolkit.getDefaultToolkit().createImage("effe.png");
    		width=image.getWidth(); // NON SO COME OTTENERE QUESTO!!!
    		System.out.println(image);
    		System.out.println(width);
    		mediana=new medianFilter(); // Crea oggetto che applichera' il filtro
    									// mediana
    	}
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Perché quel metodo che provi ad applicare non esiste (dovresti passare l'ImageObserver collegato). Se vuoi sbrigarti in fretta a recuperare le info di una immagine istanzia piuttosto un ImageIcon (è nel package swing) con il percorso all'immagine... ImageIcon ti consente di applicare getIconWidth/Height e in caso di generare l'Image relativo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Spiegazione lunga:
    il metodo createImage() di Toolkit ritorna un oggetto Image, il quale ha effettivamente dei metodi getWidth/getHeight ma questi metodi si aspettano come parametro un ImageObserver che può cioè "osservare" quando le informazioni sulla immagine sono effettivamente disponibili.
    Puoi passare un null come ImageObserver ma c'è comunque un'altra questione: createImage carica l'immagine in modo asincrono, quindi dovresti usare un MediaTracker per attendere il completamento del caricamento.

    Spiegazione breve:
    usa la classe ImageIO
    codice:
    import javax.imageio.*;
    import java.awt.image.*;
    
    BufferedImage bufimg = ImageIO.read (new File ("nomefile"));
    
    int width = bufimg.getWidth ();
    int height = bufimg.getHeight ();
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Grazie!
    Ora pare che funziona!!!

  5. #5
    E se l'immagine fosse sul web come si dovrebbe fare?
    Ad esempio se fosse su http://view.test.com/123456.image
    Grazie

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da policeaida
    E se l'immagine fosse sul web come si dovrebbe fare?
    Ad esempio se fosse su http://view.test.com/123456.image
    C'è una versione ImageIO.read(URL url)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Grazie!!

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.