Redimensionar imagem

11 respostas
D

To precisando fazer um esquema igual àquele do ORKUT, que tem
uma imagem, tipo a sua foto, e ela aparece de varios tamanhos e nao perde tanto a qualidade. Seria um redimensionamento neh ?
Vou fazer em JSP.
Tenho a foto da pessoa e quero apresentar ela um poko menor

se alguem souber algo, agradeço

:!:

11 Respostas

R

Acho que o html resolve seu problema cara.

<img src="foto.gif" width="10" height="10"/>

Regule width e height para ajustar, respectivamente, largura e altura. Quanto a perder qualidade, geralmente quando se aumenta uma imagem ela perde um pouco da qualidadade, mas isso depende da qualidade da foto, e do quanto vc quer aumenta-la.

Abraço,

cv1

O Orkut salva diversas versoes da mesma imagem em tamanhos diferentes quando vc faz upload dela. Assim, o consumo de banda diminui e o aspecto das imagens, melhor.

robertokl

Up…
Alguém? =/
Tava precisando de algo parecido também!
No meu caso, seria offline… Tenho uma pasta com varias imagens *.jpg com tamanhos variados, e quero redimencionar todas para um mesmo tamanho, salvando as imagens com o msmo nome.

Vlw… Espero q possam me ajudar.

dudaskank

robertokl:
Up…
Alguém? =/
Tava precisando de algo parecido também!
No meu caso, seria offline… Tenho uma pasta com varias imagens *.jpg com tamanhos variados, e quero redimencionar todas para um mesmo tamanho, salvando as imagens com o msmo nome.

Vlw… Espero q possam me ajudar.

bom com o mesmo nome não dá né, pelo menos não no mesmo lugar rsrs

para fazer o que vcs querem, acredito que o java.awt.Graphics2D tem, vejam sobre o método:

drawImage(BufferedImage img, BufferedImageOp op, int x, int y)

e a classe java.awt.image.RescaleOp, que implementa BufferedImageOp. Acredito que será o suficiente. Não usei ainda, e agora não da tempo de fazer um teste, mas certamente vai funcionar :wink:

flw

leonardom

Da uma olhada nesse post, talvez te ajude:

http://www.guj.com.br/posts/list/34650.java

laserista

Eu tenho o q vc precisa !!!

Eu fiz um vizualizador de imagens q tinha as miniaturas a esquerda e quando clicava nas miniaturas elas apareciam apliadas a direita.

O código que vc esta procurando deve ser isso: Ele tem uma regra de 3 na qual fixa a altura em 90 pixels, ta bem compacto mas com calma vc deve desvendar o segredo.

private ImageIcon redimensionaFotoPequena(ImageIcon nome) {
	   	return (new ImageIcon(nome.getImage().getScaledInstance(90,((nome.getIconHeight()*90)/nome.getIconWidth()), Image.SCALE_DEFAULT)));
}

Acho que era isso e boa sorte !

zirocool

Rafaelprp:
Acho que o html resolve seu problema cara.

<img src="foto.gif" width="10" height="10"/>

Regule width e height para ajustar, respectivamente, largura e altura. Quanto a perder qualidade, geralmente quando se aumenta uma imagem ela perde um pouco da qualidadade, mas isso depende da qualidade da foto, e do quanto vc quer aumenta-la.

Abraço,

Isso não é redimensionamento!!
Não da maneira que o cara quer…

Imagina se um loko poe uma imagem de 2 MB no server. Tu vai fazer um preview, e pra isso, ao invés de tu pegar um thumb gerado, tu exibir ela, redimensionada no html.
Não vai servir de nada o redimensionamento, soh vai reduzir o tamanho de exibição mesmo, e vai demorar o mesmo tempo que demoraria pra carregar ela em tamanho normal.

robertokl

Consegui ^^’
Valeu gente!

dudaskank

conta pra gente como que vc fez, agora estou curioso hehehe

flw

robertokl

Po.. Com as dicas aki fika praticamente um Ctrl+c Ctrl+v =D

Oh:

Cria uma classe "ImgTools" e cola o código do eduveks que está nesse tópico: http://www.guj.com.br/posts/list/34650.java

Cria uma otra classe "Resizer" ou o nome q vc kiseh XD

Ai vai..

import java.io.*;
import java.util.Scanner;

public class Resize {
	public static void main(String args[]) throws Exception{
		Scanner in = new Scanner(System.in);
		ImgTools imgTools = new ImgTools(in.nextLine().replace("\\","/"));
		imgTools.resize(337, 0);
		String dirDestino = "C:/Documents and Settings/";
		OutputStream out = new BufferedOutputStream(new FileOutputStream(dirDestino + "teste.JPG"));
		imgTools.setOutputImage(out, 0.75);
	}
}

Facinho =D

Ai tem as coisas q tem q personaliza neh.. Mais eh tranquilo =D

robertokl

Bom...

Acabei o código que lê e redimensiona as imagens de uma pasta inteira, e as coloca em um diretório "resized" dentro desta pasta.

Estou compartilhando em retribuição a ajuda que vocês me deram, não só desta vez, mas em outras quando já precisei.

import java.io.*;
import java.util.*;

public class Resize {
	public static void main(String args[]) throws Exception{
		Scanner in = new Scanner(System.in);
		System.out.print("Diretório: ");
		String dir = in.nextLine().replace("\\","/");
		System.out.print("\nWidth: ");
		int w = in.nextInt();
		System.out.print("\nHeight: ");
		int h = in.nextInt();
		System.out.print("\n\n\n");
		ImgTools imgTools;
		File arquivos = new File(dir);
		String[] listaDeArquivos = arquivos.list();
		File fd = new File(dir + "/resized/");
		if(!fd.exists()) fd.mkdir();
		for(int i=0; i < listaDeArquivos.length; i++){
			if(!listaDeArquivos[i].toLowerCase().contains(".jpg")) continue;
			System.out.println(dir + "/" + listaDeArquivos[i]);
			imgTools = new ImgTools(dir + "/" + listaDeArquivos[i]);
			
			OutputStream out = new BufferedOutputStream(new FileOutputStream(dir + "/resized/" + 
					listaDeArquivos[i]));
			imgTools.resize(w, h);
			imgTools.setOutputImage(out, 100);
		}
		System.out.println("\nDone.");
	}
}

Obrigado aos que ajudaram!

Criado 5 de agosto de 2005
Ultima resposta 18 de ago. de 2006
Respostas 11
Participantes 8