Como descobrir comprimento e largura de imagens jpg?

Eu preciso descobrir o comprimento e largura de imagens jpg. Alguem sabe como eu faço para descobrir quando eu crio um objeto que representa a imagem? vlw

caro amigo sou novo com java mais veja se isso ajuda

float scale = 50/100;
targetWidth = (int)(sourceImage.getWidth(null)*scale);
targetHeight = (int)(sourceImage.getHeight(null)*scale);

		   BufferedImage resizedImage = this.scaleImage(sourceImage,targetWidth,targetHeight);

Imagino que você esteja usando AWT. A classe abstrata Image possui os métodos getWidth e getHeight.

Se você estiver usando JAI, a classe PlanarImage também possui estes métodos.

[]s
–mcbrain

File imagem = new File("C:/imagem.jpg");
BufferedImage img = ImageIO.read(imagem);
int w = img.getWidth();
int h = img.getHeight();

[quote=mcbrain]Imagino que você esteja usando AWT. A classe abstrata Image possui os métodos getWidth e getHeight.

Se você estiver usando JAI, a classe PlanarImage também possui estes métodos.

[]s
–mcbrain[/quote]

Sim estou usando AWT. Implementei o metodo e fiz um teste mas ele retorna -1!

Criei um ImageObserver observer e o metodo

int tamanhoImg(){ return imagensParaAnimacao.get(0).getWidth(observer); }

imagensParaAnimacao contem objetos Image.

Diz a documentação que retorna -1 quando o comprimento ainda não é conhecido. Mas quando vou saber então o comprimento? vlw

Não precisa passar um ImageObserver se você não estiver usando um. Passe null no metodo getWidth e veja o que acontece.

Edit: acredito que a solução mais simples para pegar as dimensões em pixels seja a que foi postada pelo Mark_Ameba.

[]s
–mcbrain

Olá,

acredito que o problema não seja obter as informações em pixel, mas o “tamanho” da apresentação da imagem.

Se for este o caso, você deve obter a “qualidade” do dispositivo, por exemplo, para apresentação em tela, podemos:

int PIXELS_POR_POLEGADA = Toolkit.getDefaultToolkit().getScreenResolution();

E converte para o sistema de medidas desejas, por exemplo:

// CM double cm = (double)jpg.getWidth() / 0.393700787402d;

fw