Я искал некоторые решения из Интернета, но я до сих пор не нашел ответа на свою проблему.ImageIO сохраняет исходный размер
Я работаю или выполняю программу, которая будет получать файл изображения с моего ПК, после чего будет отредактирован с помощью Java Graphics
, чтобы добавить текст/объект/и т. Д. После этого Java ImageIO
сохранит только что измененное изображение.
До сих пор я был в состоянии сделать это красиво, но у меня возникла проблема с размером изображения. Исходное изображение и измененное изображение не имели такого же размера.
Оригинал 2x3
дюймов-изображение, в то время как модифицированный, который предположительно имеет 2x3inches, слишком грустно получил 8x14
дюймов. Таким образом, он стал БОЛЬШИМ, чем оригинальный.
Что такое решение/код, который даст мне результат 2x3inches-image, который по-прежнему будет иметь «хорошее качество»?
UPDATE:
Итак, вот код, который я использовал.
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();
}
}
второй UPDATE:
теперь я знаю, что это проблема нового образа. Когда я проверяю его из Photoshop, у него другое разрешение изображения по сравнению с оригинальным. Оригинал имеет 300 пикселей/дюйм, в то время как новое изображение имеет разрешение 72 пикселя/дюйм.
Как я могу изменить разрешение с помощью Java?
Вопрос немного общий, но я предполагаю, что вы сохраняете формат с другой настройкой DPI. Отправьте код, и мы можем попытаться помочь. –
Просьба указать [SSCCE] (http://sscce.org/) вашей проблемы. – mattbdean
Странно. Каждое преобразование на Graphics2D должно быть отражено обратным преобразованием. Я не знаю, но это единственное объяснение. Нужна ли обрезка? –