[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 애플리케이션에서 다양한 이미지 처리 기능을 구현할 수 있습니다.
참고 자료:
- Oracle Java Documentation: BufferedImage
- Oracle Java Documentation: AffineTransform