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
.
Должен ли быть прозрачным? если так .jpg файлы не имеют прозрачности, вы должны использовать .png – JRowan
Конечно, нет, это нормальное изображение RGB, но по какой-то причине оно не пишет в Imagebuffer. – ProgLearner
ой, им просто подумал, что ты имел в виду, что его появление черное, прозрачность в .jpg файл будет черным – JRowan