>  기사  >  Java  >  ImageIO를 사용하여 JPEG 이미지에 대한 명시적인 압축 수준 제어를 달성하는 방법은 무엇입니까?

ImageIO를 사용하여 JPEG 이미지에 대한 명시적인 압축 수준 제어를 달성하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 18:43:39440검색

How to Achieve Explicit Compression Level Control for JPEG Images with ImageIO?

ImageIO를 사용하여 JPEG 이미지의 압축 수준 설정

ImageIO를 사용하여 이미지를 JPEG로 저장할 때 압축 수준을 조정하여 이미지 품질 간의 균형을 제어하려는 것이 일반적입니다. 그리고 파일 크기. 그러나 기본 ImageIO 기능에는 이 옵션이 없습니다.

압축 수준을 명시적으로 설정하려면 ImageIO API에 대해 더 자세히 살펴봐야 합니다. ImageIO.getImageWritersByFormatName("jpg").next()를 사용하면 JPEG 형식에 대한 특정 매개변수를 수정할 수 있는 ImageWriter에 대한 액세스가 제공됩니다.

ImageWriteParam 클래스는 압축 설정에 대한 제어를 제공합니다. ImageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT)를 설정하면 명시적인 압축 수준 설정이 활성화됩니다.

압축 수준을 지정하려면 ImageWriteParam.setCompressionQuality(0.7f)를 사용하세요(0.7f는 원하는 압축 수준을 나타냄). 1.0에 가까울수록 품질은 높고 압축률은 낮으며, 값 0.0에 가까울수록 품질은 낮고 압축률은 높습니다.

ImageWriter.setOutput() 메서드에는 ImageOutputStream이 필요하며, 이를 통해 이미지의 목적지. 파일 출력에는 FileImageOutputStream을 사용하고 메모리 버퍼로 출력하려면 MemoryCacheImageOutputStream을 사용합니다.

수정된 JPEG를 저장하려면 jpgWriter.write(null, outputImage, jpgWriteParam)를 사용합니다. 여기서 outputImage는 이미지 데이터를 포함하는 IIOImage이고 jpgWriteParam 이전에 구성한 압축 설정입니다.

이 접근 방식을 사용하면 JPEG 압축 수준을 세밀하게 제어할 수 있으므로 특정 요구 사항에 맞게 이미지 품질과 파일 크기를 최적화할 수 있습니다.

위 내용은 ImageIO를 사용하여 JPEG 이미지에 대한 명시적인 압축 수준 제어를 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.