BufferedImage 크기 조정: 자르기가 아닌 리샘플링 탐구
Graphics2D 클래스를 사용하여 BufferedImage 크기를 조정하려고 하면 원하는 결과를 얻지 못할 수 있습니다. 방법에 따른 제한 때문입니다. scale() 메서드는 기본 이미지 데이터를 수정하지 않고 현재 그래픽 컨텍스트를 변환합니다.
AffineTransformOp: 리샘플링을 위한 선호 솔루션
리샘플링의 경우 AffineTransformOp 클래스는 다음을 제공합니다. 보간 유형을 지정할 수 있어 유연성이 향상됩니다. 보간은 이미지 크기를 조정할 때 중간 픽셀 값을 계산하는 방법을 결정합니다. 다음은 AffineTransformOp를 사용하여 이미지 크기를 조정하는 예입니다.
BufferedImage before = getBufferedImage(encoded); int w = before.getWidth(); int h = before.getHeight(); BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); AffineTransform at = new AffineTransform(); at.scale(2.0, 2.0); AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); after = scaleOp.filter(before, after);
이 예에서는
핵심 사항
위 내용은 Java에서 버퍼링된 이미지의 크기를 적절하게 조정하는 방법: 리샘플링과 자르기?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!