2014-11-25 3 views
1

BufferedImage по какой-то причине производит черный выход при записи масштабированного изображения, однако изображение масштабирует его правильно. Я предполагаю, что здесь есть некоторые проблемы с компонентами рисования. Спасибо!BufferedImage производит черный выход

+0

Должен ли быть прозрачным? если так .jpg файлы не имеют прозрачности, вы должны использовать .png – JRowan

+0

Конечно, нет, это нормальное изображение RGB, но по какой-то причине оно не пишет в Imagebuffer. – ProgLearner

+0

ой, им просто подумал, что ты имел в виду, что его появление черное, прозрачность в .jpg файл будет черным – JRowan

ответ

3
BufferedImage newImage = new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB); 

Если вы поместили PNG или GIF с прозрачностью, прозрачные детали станут черными. Оно должно быть:

BufferedImage newImage = new BufferedImage(400, 400, BufferedImage.TYPE_INT_ARGB); 

Но тогда, я рекомендую:

  • только сохранить как JPEG, если исходное изображение было JPEG
  • Не используя ImageIcon для загрузки Image, вместо этого использовать ImageIO для загрузки a BufferedImage.
  • Используйте буферизованное изображение getType() в качестве параметра вместо BufferedImage.TYPE_..
  • Избегайте getScaledInstance(..)like the plague, но если использовать его, указать Image.SCALE_SMOOTH.
Смежные вопросы