2010-10-29 52 views
2

我遇到問題,當我保存圖像時,無法打開它,因爲它是空的,大小爲零kb。我正在從文件夾中讀取圖像,然後將尺寸更改爲100x100並保存,但不起作用。下面是我到目前爲止已經編寫的代碼:保存圖像的問題我得到零kb

public BufferedImage resizeImageToPreview() { 

final String SOURCE ="/Library/glassfishv3/glassfishv3/glassfish/domains/domain1/eclipseApps/LaFamilyEar/LaFamily_war/temp"; 
    File source = new File(SOURCE); 

    BufferedImage image = null; 

    //Read images and convert them to BufferedImages 
    for (File img : source.listFiles()) { 
    try { 

    image = ImageIO.read(img); 

    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    //Get image width and height 
    int w = image.getWidth(); 
    int h = image.getHeight(); 

    //Change the width and height to the image to 100x100 
// BufferedImage dimg = new BufferedImage(100, 100, image.getType()); 

    //Create graphics to be able to paint or change your image 
    Graphics2D g = image.createGraphics(); 

    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
    g.drawImage(image, 0, 0, 100, 100, 0, 0, w, h, null); 
    g.dispose(); 

    String extension = ".jpg"; 
    File dest = new File("/Users/ernestodelgado/Kurs_Java/EjbWorkspace/LaFamily/WebContent/small/"+img.getName()); 
    try { 

    ImageIO.write(image, extension, dest); 

    } catch (IOException e) { 
    e.printStackTrace(); 
    } 

    } 

    return image; 
} 

回答

1

嘗試改變..

String extension = ".jpg"; 

..to ..

String extension = "jpg"; 

顯然,添加一個 「」到相關點的文件名。

如果這不適用於您,請嘗試發佈SSCCE

+0

哇,它的工作ü達最佳;-)非常感謝我張貼,以防有人代碼再次尋找相同的答案感謝,這個論壇是真棒。 – madcoderz 2010-10-30 08:01:30

2

試試這個例子:

public class MakeSmaller { 
    public static void main(String... args) throws MalformedURLException, 
    IOException { 

     String url = "http://actionstalk.com/wp-content/uploads/2007/11/google_logo_3600x1500.jpg"; 
     BufferedImage orig = ImageIO.read(new URL(url)); 

     BufferedImage scaled = new BufferedImage(50, 50, orig.getType()); 

     Graphics2D g = (Graphics2D) scaled.getGraphics(); 
     g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, 
       RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
     g.drawImage(orig, 0, 0, scaled.getWidth(), scaled.getHeight(), null); 
     g.dispose(); 

     ImageIO.write(scaled, "jpg", new File("test.jpg")); 
    } 
} 
+0

哇它的工作你最好;-)謝謝很多我發佈的代碼,以防有人在尋找相同的答案再次感謝,這個論壇是真棒。 – madcoderz 2010-10-30 08:00:20

+0

沒問題,如果你喜歡答案,你應該通過點擊它旁邊的接受按鈕來接受它(概述'v')。 :) – dacwe 2010-10-31 09:40:05