2010-03-06 5 views
0

Java2D Graphics 클래스를 사용하여 이미지의 크기를 조정했습니다. 그러나 그것은 옳지 않습니다.크기가 조정 된 이미지의 품질이 저하됩니다.

BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type); 
    Graphics2D g = resizedImage.createGraphics(); 
    g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null); 
    g.dispose(); 

아티팩트를 삽입하지 않고 이미지를 확대 할 수 있습니까?

+0

중복 된 http://stackoverflow.com/questions/543130/java-2d-resize? –

답변

1

일반적으로 비트 맵 그래픽은 확장 성이 좋지 않습니다. 이미지의 크기를 늘리면 저하가 특히 두드러 지지만 스케일을 줄이면 적분 요소로 스케일링하지 않는 경우 바람직하지 못한 결과가 발생할 수 있습니다.

하나의 이미지를 여러 개의 크기로 표시해야하는 경우 가장 좋은 해결책은 벡터 그래픽을 사용하는 것입니다. 또는은 가장 충실도가 높은 비트 맵을 가져 와서 축소하고 정수 요소로 사용하는 것이 가장 좋습니다.

* 벡터 그래픽은 사진 등을위한 옵션이 아닙니다.

0

article by Chris Campbell에는 Java2D로 이미지 크기 조정에 대한 자세한 정보가 많이 있습니다.

스케일링의 품질과 관련하여 사용할 수있는 옵션이 많이 있습니다. 일반적으로 스케일링이 오래 걸릴수록 품질이 우수합니다 (성능과 품질의 절충).

아티클의 정보는 스케일링의 모양을 좋게 만드는 데 도움이되지만 @Kevin은 대답에서 말하면 결국 아무런 스케일링도 완벽하지 않을 것입니다.

0

java-image-scaling 라이브러리를 살펴볼 수 있습니다. 빠른 테스트를 통해 표준 Java2D/AWT 도구를 사용하는 것보다 더 나은 품질의 축소 된 이미지를 만들었습니다.

관련 문제