Я читаю PNG изображения с помощью следующего кода:Удаление прозрачности в PNG BufferedImage
BufferedImage img = ImageIO.read(new URL(url));
При отображении его, есть черный фон, который я знаю, связано с прозрачностью PNG. Моя попытка исправить это была установка каждого пикселя с альфа-значением, не равным 255, до Color.white
. Это не решило проблему.
Я нашел ответы на вопрос, предлагая использовать BufferedImage.TYPE_INT_RGB
, однако я не уверен, как применить это, учитывая мой код выше. Любая помощь будет оценена по достоинству.
Мне нужно было нарисовать изображение на весь прямоугольник, чтобы он полностью заполнил его. Синтаксис немного меняется: 'g2d.drawImage (img, 0, 0, copy.getWidth(), copy.getHeight(), null);' –
@JanPetzold Решение будет зависеть от требований, лично я использую «масштаб для заполнения», который поддерживает соотношение сторон исходного изображения, например [https://stackoverflow.com/questions/11959758/java-maintaining-aspect-ratio-of-jpanel-background-image/11959928 # 11959928). В большинстве случаев встроенные алгоритмы масштабирования фокусируются на скорости по качеству, поэтому вы должны просто опасаться этого – MadProgrammer