Я следовал за некоторыми ссылками StackOverflow, используя Graphics2D, чтобы изменить цвет фона BufferedImage.
Проект, над которым я работаю, требует, чтобы я прочитал изображение в формате png с данного URL; Полученное png-изображение имеет прозрачный фон, и я хотел бы установить его на белый.
Вот что у меня есть:
String u = this.format() ;
BufferedImage image = null ;
try{
URL url = new URL(u) ;
image = ImageIO.read(url) ;
Graphics2D graphics = image.createGraphics() ;
graphics.setBackground(Color.WHITE) ;
graphics.clearRect(0, 0, image.getWidth(), image.getHeight()) ;
ImageIO.write(image, "png", new File(outPath + fileName)) ;
graphics.dispose() ;
}
catch(IOException e){
e.printStackTrace() ;
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я просмотреть изображение, изображение отображается в виде solid белого поля. Видимо, я наложил белый фон поверх существующего изображения, которое я получил.
Как сохранить исходное изображение и изменить только фон? Или сначала установить фон, а затем наложить полученное изображение?