Я работаю над интерполяцией изображения, для которой я использую бикубическую интерполяцию, чтобы удвоить разрешение изображения в java, используя AffinedTransformOp
. Я использовал BufferedImage
из TYPE_4BYTE_ABGR
при выполнении масштабирования. Когда я попытался сохранить обратно свое высококлассное изображение, используя ImageIO.write
, то обнаружил, что openjdk не поддерживает кодирование jpeg
для TYPE_4BYTE_ABGR
, поэтому я преобразовал это увеличенное изображение из TYPE_4BYTE_ABGR
в TYPE_3BYTE_BGR
. Когда я сохранил его в папке, то обнаружил, что память, занимаемая этим высококачественным изображением, намного меньше (примерно в половину времени), чем память, занятая исходным изображением.
Итак, я предполагаю, что исходное (входное) изображение представлено четырьмя каналами ARGB
, в то время как высококлассное (выходное) изображение занимает 3 канала RGB
, и поэтому получает меньше памяти.
Теперь мой вопрос, должен ли я использовать это преобразование?
Есть ли какая-то информация, которая теряется?
Качество изображения остается прежним?
PS: я прочитал из документации ImageIO
, что когда мы конвертируем ARGB
в RGB
, альфа-значение предварительно умножается на RGB
значения, и я думаю, что это не должно влиять на качество изображения. .