ImageIO guarda de nuevo a su tamaño original

He estado buscando algunas soluciones de Internet, pero todavía no he encontrado una respuesta a mi problema.

He estado trabajando o haciendo un programa que obtendría un archivo de imagen de mi PC y luego se editará usandoJava Graphics para añadir algún texto / objeto / etc. Después de esto,Java ImageIO Guardará la imagen recién modificada.

Hasta ahora, pude hacerlo muy bien pero tuve un problema con el tamaño de la imagen. La imagen original y la imagen modificada no tenían el mismo tamaño.

El original es un2x3pulgadas de la imagen, mientras que la modificada que supuestamente tiene 2x3inches muy tristemente conseguida8x14pulgadas. Por lo tanto, se ha vuelto más grande que el original.

¿Cuál es la solución / código que me daría una salida de imagen de 2x3 pulgadas que todavía tendrá una "buena calidad"?

ACTUALIZAR:

Entonces, aquí está el código que usé.

public Picture(String filename) {
    try {
        File file = new File("originalpic.jpg");
        image = ImageIO.read(file);
        width  = image.getWidth();
    }
    catch (IOException e) {
        throw new RuntimeException("Could not open file: " + filename);
    }
}

private void write(int id) {
    try {
        ImageIO.write(image, "jpg", new File("newpic.jpg"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

2ª ACTUALIZACIÓN:

Ahora sé cuál es el problema de la nueva imagen. Al comprobarlo en Photoshop, tiene una resolución de imagen diferente a la original. El original tiene 300 píxeles / pulgada, mientras que la nueva imagen tiene una resolución de 72 píxeles / pulgada.

¿Cómo podré cambiar la resolución usando Java?

Respuestas a la pregunta(1)

Su respuesta a la pregunta