Я пишу библиотеку изображений для удовольствия, и я столкнулся с проблемой, которую я не могу решить. Класс довольно прост: сделайте снимок, обработайте его, покажите его через JFrame и, наконец, сохраните его как BufferedImage (javax.imageio.ImageIO). Вот что моя картина выглядит через JFrame (это мой класс ColorEnhance ... на туманности Друстан):Java Imagio.write() меняет качество во время сохранения
Вот что сохраненная версия (а PNG, но все типы ImageIO.write() поддерживает выглядят одинаково):
Я не уверен, где происходит изменение, но когда я запускаю это через мой метод размытия целые строки появляются из ничего в PNG ... в любом случае, здесь представляет собой некоторый код:
public void writeToFile(BufferedImage finalPic, String nameToAppend)
{
String temp=fileName.replace(".", nameToAppend+".");
String ext=fileName.substring(fileName.indexOf(".")+1);
File file=new File(temp);
try
{
ImageIO.write(finalPic, ext.toUpperCase(), file);
System.out.println("Successfully saved to: "+temp);
} catch (Exception e) { e.getMessage(); }
}
public void displayImage(String titleName)
{
ImageIcon icon = new ImageIcon(newPic);
JFrame frame = new JFrame(titleName);
JLabel label = new JLabel(icon);
label.setIcon(icon);
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.setSize(WIDTH, HEIGHT+22);
frame.setVisible(true);
}
последнее дело в том, что за исключением работ для некоторых классов обработки лучше, чем другие, если вы хотите увидеть больше кода просто спросить, спасибо
I увеличили репутацию, разместили необходимые изображения для лучшего понимания проблемы. –
Эти фрагменты кода даже не указывают, какой тип изображения используется! Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –
Хорошо, спасибо, Андрей, я думаю, я должен был сделать более понятным, что я исчерпал все типы изображений, которые ImageIO.write() поддерживает с одинаковыми результатами каждый раз. Я забыл оставить остальную часть кода, потому что я знаю, что ошибка лежит где-то в взаимодействии ImageIO или BufferedImage (я не слишком знаком с ними). Если исправление не может быть найдено, я смогу с ним жить, а спагетти патч мой путь вокруг него каким-то образом ... Bottom Line: есть ли способ, который я могу сделать, чтобы мой сохраненный файл выглядел точно так же, как вывод через JFrame? – JFakult