Ajustar el nivel de compresión JPEG en Java con ImageIO
En el ámbito de la manipulación de imágenes, controlar el nivel de compresión de los archivos JPEG es esencial para equilibrar calidad de imagen y tamaño de archivo. Si bien el nivel de compresión predeterminado para ImageIO puede no siempre ser suficiente, este artículo profundiza en cómo ajustar este parámetro.
Obtener ImageWriter directamente
Un enfoque directo implica recuperando ImageWriter para el formato JPEG:
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
Configuración de parámetros de compresión explícitos
Para establecer explícitamente el nivel de compresión, use la clase ImageWriteParam:
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
Ajustar la calidad de la compresión
El nivel de compresión deseado se especifica como un valor flotante entre 0,0f (compresión máxima, calidad mínima) y 1.0f (compresión mínima, calidad máxima):
jpgWriteParam.setCompressionQuality(0.7f); // Set a compression quality of 70%
Escribiendo la salida
ImageWriter requiere un ImageOutputStream para generar la imagen:
ImageOutputStream outputStream = createOutputStream(); // Generate an OutputStream (e.g., a FileImageOutputStream)
jpgWriter.setOutput(outputStream);
Finalización
Una vez escrita la imagen, se debe desechar el ImageWriter:
jpgWriter.dispose();
En conclusión, al obtener directamente ImageWriter y configurar parámetros de compresión explícitos, obtendrá un control preciso sobre el nivel de compresión JPEG, optimizando la calidad de la imagen y el tamaño del archivo de acuerdo con sus requisitos específicos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3