BufferedImage выдает черный вывод

1

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

  • 0
    это должно быть прозрачным? если так .jpg файлы не имеют прозрачности, вы должны использовать .png
  • 0
    Конечно, нет, это нормальное изображение RGB, однако по какой-то причине оно не записывает в Imagebuffer.
Показать ещё 4 комментария
Теги:
user-interface
image
swing

1 ответ

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 для загрузки BufferedImage.
  • Используйте getType() изображение getType() в качестве параметра вместо BufferedImage.TYPE_..
  • Избегайте getScaledInstance(..) как чума, но если вы используете его, укажите Image.SCALE_SMOOTH.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню