2012-09-08 62 views
0

我目前使用http://code.google.com/p/java-image-scaling/這個庫爲我的web應用程序生成縮放圖像。但是當我將圖像縮小到100x100大小時,在一些圖像中可以看到一些剩餘的工件。這是抗鋸齒問題嗎?我該如何在這個庫中使用antialiasing。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

考慮,如果你真的需要這個庫。您還可以使用內置類BufferedImage縮放圖像。據我所知(使用它,但不是太多),使用這個類時沒有任何工件。你應該測試它:) – m4tx

+0

當我將保存的重縮放圖像保存爲jpg ..時,我真的得到了一些文物..但仍然比imgscalr庫好..可以告訴我如何啓用這個庫的抗鋸齒 – Nav

+0

*「有一些殘留的文物可見一些圖像「。*一張圖片描繪了千言萬語。但是,儘管如此,使用「未縮放的無文物」和「與文物的比例」進行縮放的2000個單詞。 –

回答

0

我終於沒有需要抗鋸齒我只是用在foloowing鏈接給這個代碼和它的工作:) whewww

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();