Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > como cambiar los dpi (dots per inch) de una imagen?

estoy creando una aplicacion con java la cual genera imagenes a partir de otras, esta parte he conseguido que la haga pero no consigo cambiar lo dpi de la imagen, es decir, los pixeles por pulgada. Por defecto sale en 72 pero yo necesito cambiarlos a 254.
aqui os dejo el codigo con el cual genero la imagen:

//generar y guardar las imagenes
ImageIcon image = new ImageIcon("imagen_original.jpg");
//guardar la imagen en el buffer
BufferedImage imagen_g = new BufferedImage(ancho_imagen_final, alto_imagen_final, BufferedImage.TYPE_INT_RGB);
//con la libreria graphics imprimimos la imagen original en una nueva imagen en blanco
Graphics2D g = imagen_g.createGraphics();
//coloreamos el fondo de la imagen
g.setColor(Color.WHITE);
g.fillRect(0, 0, ancho_lienzo, alto_lienzo);
//dibujamos la imagen original en el nuevo lienzo
g.drawImage(image.getImage(), margin_left, margin_top, ancho_imagen_final, alto_imagen_final, null);

//guardar la imagen
ImageIO.write(imagen_g, "jpg", new File(nombre_final.jpg));

noviembre 13, 2013 | Unregistered Commenteralvaro castillo

Guenas.

Puedes usar el método getScaledInstance() de la imagen.
De todos modos el problema es que si la imagen original tiene poca resolución, al aumentar el numero de pixels te va a quedar un churro.
Reducir la resolución es viable hasta cierto punto, pero aumentarla nunca queda demasiado bien por que es necesario inventarse pixels que no existen.

Un saludo

noviembre 14, 2013 | Unregistered CommenterPaposo