2012-08-15 2 views
2

나의 요구 사항은 "스윙을 사용하여 품질을 잃지 않고 이미지의 크기를 조정하는 방법"입니다.java를 사용하여 화질을 잃지 않고 이미지의 크기를 조정하는 방법은 무엇입니까?

resizer 구성 요소, 레이블, 패널을 사용하고 있습니다. 이미지를 흐릿하게하고 품질을 떨어 뜨리는 지금 크기 조정 개념을 사용하고 있습니다. "스윙 개념을 사용하여 품질을 잃지 않고 이미지의 크기를 조정하는 방법"을 아는 사람이 있습니까? 관련 정보 나 코드를 보내주십시오.

감사합니다. GaneshKumar.

+1

이미지의 크기를 줄이거 나 늘리려 고하십니까? 품질이란 무엇을 의미합니까? 크기 조정 전과 후의 이미지 예제를 게시 할 수 있습니까? – Simon

답변

2

당신이 원하는 것은 불가능합니다. new resolution > native resolution이 정의에 의한 손실 인 래스터 이미지의 비율 조정. 혹시 그 질문을 잘못 이해 한 경우, 사전에 사과드립니다.

BufferedImage thumbnail = Scalr.resize(srcImage, 150); 

보장하기 위해 : 당신은 imgscalr 한 번 봐 걸릴 수 있습니다

+0

내가 믿는 것은 이미지를 스케일링 할 때 이미지가 너무 흐릿 해지지 만 품질이 떨어지는 것이 아니라 매우 나쁜 품질이된다는 것입니다.이 문제도 있었지만 결코 좋은 해결책을 찾지 못했습니다. –

+0

이 사실이 아닙니다. 스케일링 팩터가 정수인 경우 이미지의 크기를 늘릴 수 있습니다. 축소는 항상 손실됩니다. – Simon

+0

당신이 말했듯이, 그것은 그가 품질의 의미에 달려 있다고 생각합니다. 스케일링 팩터를 정수로 사용하여 이미지의 크기를 조정하더라도 앤티 앨리어싱 픽셀은 더 많은 영역을 차지하므로 화면이 부드럽게 보이지 않습니다. –

5

가네는, 그것은 매우 간단한 (단일 클래스, 정적 메소드의 무리가 사용하는)를 사용하는 다음과 같다 즉 최고 품질의 조정 결과는 당신과 같이 크기 조정 방법에 추가 인수를 전달할 수 있습니다

BufferedImage thumbnail = resize(img, Method.ULTRA_QUALITY, 125, OP_ANTIALIAS); 

도 있습니다됩니다 slew of simple image operations (사장님 전자 자르기, 패딩, 회전 등)을 사용할 수 있습니다. 예를 들어 서버에서 이미지 처리를 수행하는 경우 많은 작업을 한 번에 대기열에 넣고 구성 가능한 수의 스레드에서 실행할 수있는 비동기 클래스도 있습니다.

라이브러리는 순수 Java로 작성되었으며 Apache 2 라이센스로 출시되었습니다. 관심이 있으시면 모든 소스 코드 here을 찾을 수 있습니다.

다른 예제 또는 사용 사례에 대해 궁금한 경우 여기에 some other SO questions과 관련 있습니다.

관련 문제