>Java >java지도 시간 >Java에서 보간법을 사용하여 유연한 이미지 크기 조정을 어떻게 달성할 수 있습니까?

Java에서 보간법을 사용하여 유연한 이미지 크기 조정을 어떻게 달성할 수 있습니까?

DDD
DDD원래의
2024-11-27 03:20:18493검색

How Can I Achieve Flexible Image Scaling with Interpolation in Java?

유연한 보간으로 BufferedImage 크기 조정

Java API를 사용하여 BufferedImage의 크기를 조정하려는 시도에서 구현이 원하는 결과를 생성하는 데 어려움을 겪었습니다. . 코드는 Graphics2D 클래스를 활용하여 이미지에 스케일링 변환을 적용했지만 실패했습니다.

문제를 분석한 결과 제공된 솔루션에는 보간 유형을 지정하는 기능이 부족하다는 것이 분명해졌습니다. 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);

이 코드 조각은 AffineTransformOp를 사용하여 이미지를 리샘플링하는 방법을 보여줍니다. 쌍선형 보간을 통해 더욱 부드럽고 정확한 결과를 얻을 수 있습니다.

주목할만한 가치가 있습니다. 제공된 코드는 수평 및 수직 치수 모두에서 이미지의 크기를 균일하게 조정합니다. 비대칭 크기 조정의 경우 AffineTransform 개체 내의 각 축에 대해 독립적인 크기 조정 계수를 지정해야 합니다.

위 내용은 Java에서 보간법을 사용하여 유연한 이미지 크기 조정을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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