2012-09-08 9 views
0

현재 웹 응용 프로그램의 크기 조정 된 이미지를 생성하기 위해 http://code.google.com/p/java-image-scaling/이 라이브러리를 사용하고 있습니다. 그러나 이미지를 약 100x100 크기로 축소하면 일부 이미지에 일부 남은 아티팩트가 표시됩니다. 이것은 안티 앨리어싱과 관련된 문제입니까? 그리고이 라이브러리에서 앤티 앨리어싱을 사용하려면 어떻게해야합니까? API 설명서에는 그것에 대해 아무 것도 말하지 않습니다. 여기Java 이미지 스케일링 라이브러리의 안티 앨리어싱

코드 내가 잘못 뭐하는 거지

File f = new File("C:\\Users\\ad min\\Pictures\\30-whisky-3d-wallpaper-1152x864.jpg"); 
     BufferedImage src = ImageIO.read(f); 

     //ResampleOp resampleOp = new ResampleOp(76, 76); 
     ResampleOp resampleOp = new ResampleOp(200,200); 
     resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.VerySharp); 
     BufferedImage rescaled = resampleOp.filter(src, null); 

     ImageIO.write(rescaled, "JPG", new File(
       "C:\\Users\\ad min\\Pictures\\scaleddown.jpg")); 

입니까?

+0

이 고려 whewww이 :)했다. 내장 클래스 BufferedImage를 사용하여 이미지의 크기를 조절할 수도 있습니다. 내가 아는 한 (사용했지만 너무 많이 사용하지는 않음),이 클래스를 사용할 때 아티팩트가 없습니다. 당신은 그것을 테스트해야합니다 :) – m4tx

+0

jpg.but rescaled 이미지를 저장할 때 정말 유물 imgscalr 라이브러리 ..can uplz보다 더 나은이 라이브러리를 사용하여 앤티 엘리 어싱을 활성화하는 방법을 말해주십시오 – Nav

+0

* "남아있는 유물이 있습니다 일부 이미지 "* 그림은 수천 단어를 그립니다. 그러나 도대체, '스케일링되지 않은 유물'및 '유물과 비교하여 스케일링 된'2000 단어로 만드십시오. –

답변

0

드디어 안티 앨리어싱을 필요로하지 않았다 나는 단순히 foloowing 링크에 주어진이 코드를 사용하고 당신이 정말로이 라이브러리를 필요로하는 경우

http://www.universalwebservices.net/web-programming-resources/java/adjust-jpeg-image-

compression-quality-when-saving-images-in-java 
     Iterator<ImageWriter> iter = ImageIO 
       .getImageWritersByFormatName("jpeg"); 
     ImageWriter writer = (ImageWriter) iter.next(); 
     // instantiate an ImageWriteParam object with default compression 
     // options 
     ImageWriteParam iwp = writer.getDefaultWriteParam(); 
     iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 
     iwp.setCompressionQuality(1); // an integer between 0 and 1 
     // 1 specifies minimum compression and maximum quality 
     File file = new File("C:\\Users\\ad min\\Pictures\\scaleddown.jpg"); 
     FileImageOutputStream output = new FileImageOutputStream(file); 
     writer.setOutput(output); 
     IIOImage image = new IIOImage(rescaled, null, null); 
     writer.write(null, image, iwp); 
     writer.dispose(); 
관련 문제