Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Reducir imagenes
Enviado por Olga el día 14 de octubre de 2005
Hola!
Tengo una imagen y la kiero reducir para que entre en un boton. Tengo el siguiente código, guardo la imagen y se me guarda entera negra xq puede ser? alguien me puede ayudar????
public class Imagenes {
public void creaImagenReducida( String origen, String imgReducida, int maxDim)
{
// Carga la imagen desde el fichero
Image imagen = new ImageIcon(origen).getImage();
// Calcula el tamaño de la nueva imagen. Una de las
// dimensiones ha de ser igual a maxDim
int escalaAncho = (int)(escala * imagen.getWidth(null));
int escalaAlto = (int)(escala * imagen.getHeight(null));
// Crear un buffer sobre el cual se va a dibujar la imagen
BufferedImage imgFinal = new BufferedImage(escalaAncho, escalaAlto, BufferedImage.TYPE_USHORT_GRAY);
// Fija la escala
AffineTransform transformador = new AffineTransform();
// Si la imagen es más pequeña que el tamaño que se ha
// indicado en la llamada, no se realiza el escalado
System.out.println(escala+"/n"+ escalaAncho+"/n"+ escalaAlto);
if(escala < 1.0d)
{
transformador.scale(escala, escala);
}
Enviado por chuidiang el día 17 de octubre de 2005
Hola:
El escalado y el AffineTransform son muy puñeteros. Si te equivocas lo más mínimo (y es lo habitual) lo normal es que la imagen se vaya fuera de tu area de dibujo y por eso sale negra. A mi me dio muchos quebraderos de cabeza hasta que fui capaz de dar con las cuentas correctas.
De todas formas, para obtener una imagen a escala, puedes usar el método getScaledInstance() de la clase Image.