[java] ImageWriteParam 클래스

ImageWriteParam 클래스는 이미지를 쓸 때 사용되는 매개변수를 다루는데에 사용됩니다. 이미지 포맷을 지정하고, 압축 방식 및 품질을 설정하는 데 유용합니다.

사용법

다음은 ImageWriteParam 클래스를 사용하여 JPEG 이미지를 쓰는 예제 코드입니다.

import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;

public class ImageWriterExample {
    public static void main(String[] args) throws IOException {
        File input = new File("input.jpg");
        BufferedImage image = ImageIO.read(input);

        File output = new File("output.jpg");
        Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpeg");
        ImageWriter writer = (ImageWriter) writers.next();

        ImageWriteParam writeParam = writer.getDefaultWriteParam();
        writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        writeParam.setCompressionQuality(0.7f);

        writer.setOutput(ImageIO.createImageOutputStream(output));
        writer.write(null, new javax.imageio.IIOImage(image, null, null), writeParam);
    }
}

주요 메서드

setCompressionMode

void setCompressionMode(int mode)

이 메서드는 압축 모드를 설정합니다. 가능한 값으로는 MODE_COPY_FROM_METADATA, MODE_EXPLICIT, MODE_DEFAULT 등이 있습니다.

setCompressionQuality

void setCompressionQuality(float quality)

이 메서드는 이미지의 압축 품질을 설정합니다. 값의 범위는 0.0에서 1.0 사이이며, 1.0은 품질이 가장 높고 압축률이 낮은 것을 의미합니다.

setTilingMode

void setTilingMode(int mode)

이 메서드는 타일링 모드를 설정합니다. 가능한 값으로는 MODE_DISABLED, MODE_DEFAULT, MODE_EXPLICIT 등이 있습니다.

결론

ImageWriteParam 클래스를 사용하여 이미지를 쓸 때 압축 방식 및 품질을 설정할 수 있습니다. 이를 통해 효율적으로 이미지를 처리하고 저장할 수 있습니다.

더 자세한 내용은 Oracle 공식 문서를 참조하세요.