2014-07-11 355 views
3

我有一個奇怪的問題,調整圖像大小,無法弄清楚我做錯了什麼。我讀過很多職位wwhich基本上有相同的代碼,因爲我的:圖像調整大小Java

(我用的是Java庫Scalr)

File image = new File("myimage.png"); 
File smallImage = new File("myimage_s"); 
try { 
    BufferedImage bufimage = ImageIO.read(image); 

    BufferedImage bISmallImage = Scalr.resize(bufimage, 30); // after this line my dimensions in bISmallImage are correct! 
    ImageIO.write(bISmallImage, "png", smallImage); // but my smallImage has the same dimension as the original foto 
} catch (Exception e) {} 

誰能告訴我什麼,我做錯了什麼?

+0

有什麼跡象表明有什麼不對?如果你的代碼拋出一個異常'catch(Exception e){}'將會讓你在黑暗中發生什麼。您是否使用調試器完成了代碼? – J0e3gan

+0

http://www.mkyong.com/java/how-to-resize-an-image-in-java/ –

+2

我剛剛離開了不必要的代碼,我在我的代碼中有錯誤處理等。我沒有得到任何例外或其他任何東西。 「調整大小」圖像的大小與原始大小相同 – Markus

回答

3

我沒有看到你的代碼有什麼問題。

我把它開進在Eclipse中快速測試項目針對Java SE 7中,並使用imgscalr 4.2在Windows 7專業版64位:

import java.awt.image.BufferedImage; 
import java.io.File; 

import javax.imageio.ImageIO; 

import org.imgscalr.Scalr; 

public class ScalrTest { 

    public static void main(String[] args) { 
     File image = new File("myimage.png"); 
     File smallImage = new File("myimage_s.png"); // FORNOW: added the file extension just to check the result a bit more easily 
     // FORNOW: added print statements just to be doubly sure where we're reading from and writing to 
     System.out.println(image.getAbsolutePath()); 
     System.out.println(smallImage.getAbsolutePath()); 
     try { 
      BufferedImage bufimage = ImageIO.read(image); 

      BufferedImage bISmallImage = Scalr.resize(bufimage, 30); // after this line my dimensions in bISmallImage are correct! 
      ImageIO.write(bISmallImage, "png", smallImage); // but my smallImage has the same dimension as the original foto 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); // FORNOW: added just to be sure 
     } 
    } 

} 

用下面myimage.png ...

myimage.png

...,它生產了以下產品myimage_s.png

myimage_s.png

也許有一個環境問題妨礙了你的代碼,但想到的可能性會帶來明顯的錯誤。

+1

是的,你是對的。我還在一個額外的應用程序中測試了它。我認爲我的問題不是Java相關的,而是別的。感謝您考慮測試我的問題,並將我帶入正確的方向! – Markus