질문:
JavaDocs를 준수함에도 불구하고 Graphics2D를 사용하여 BufferedImage 크기를 조정하려는 시도는 입증되었습니다. 하찮은. 다음 코드가 사용됩니다:
BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded); Graphics2D grph = image.createGraphics(); grph.scale(2.0, 2.0); grph.dispose();
답변:
실제 렌더링을 변경하지 않고 화면 렌더링의 크기만 조정하는 Graphics2D만 사용하면 문제가 발생할 수 있습니다. 이미지 데이터. 효과적인 이미지 크기 조정을 위해서는 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);
이 접근 방식을 사용하면 부드럽고 정확한 크기 조정 결과를 생성하는 이중선형 보간이 가능합니다.
위 내용은 Graphics2D가 버퍼링된 이미지의 크기를 효과적으로 재조정하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!