[java] 이미지 스케일링 및 로테이션

이미지 처리는 Java 애플리케이션에서 매우 일반적인 작업입니다. 이미지 스케일링 및 로테이션은 이미지 처리의 기초인데, 이를 수행하는 방법에 대해 알아보겠습니다.

이미지 스케일링

이미지 스케일링은 이미지의 크기를 조절하는 작업입니다. Java에서는 BufferedImage 클래스를 사용하여 이미지를 스케일링할 수 있습니다. 아래는 이미지를 스케일링하는 간단한 예제 코드입니다.

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;

public class ImageScaler {
    public BufferedImage scaleImage(BufferedImage originalImage, int targetWidth, int targetHeight) {
        Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_DEFAULT);
        BufferedImage outputImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics2D = outputImage.createGraphics();
        graphics2D.drawImage(resultingImage, 0, 0, null);
        graphics2D.dispose();
        return outputImage;
    }
}

위의 예제는 ImageScaler 클래스를 사용하여 이미지를 스케일링하는 방법을 보여줍니다.

이미지 로테이션

이미지 로테이션은 이미지를 회전시키는 작업입니다. Java에서는 AffineTransform 클래스를 활용하여 이미지를 로테이션할 수 있습니다. 다음은 이미지 로테이션을 구현하는 예제 코드입니다.

import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;

public class ImageRotator {
    public BufferedImage rotateImage(BufferedImage originalImage, double angle) {
        AffineTransform transform = new AffineTransform();
        transform.rotate(Math.toRadians(angle), originalImage.getWidth() / 2, originalImage.getHeight() / 2);
        AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
        return op.filter(originalImage, null);
    }
}

위의 코드는 ImageRotator 클래스를 통해 이미지를 로테이션하는 방법을 보여줍니다.

결론

Java에서는 간단한 코드를 사용하여 이미지의 스케일링 및 로테이션을 수행할 수 있습니다. 이미지 처리에 있어서 이러한 기본 작업은 매우 중요하며, Java의 내장 라이브러리를 활용하여 간단하게 구현할 수 있습니다.

이러한 이미지 처리 작업을 통해 Java 애플리케이션에서 다양한 이미지 처리 기능을 구현할 수 있습니다.

참고 자료: