2014-09-26 104 views
1

我對Java仍然很陌生,並試圖找到有關如何在一個框架中包含圖片的信息。 有些圖片尺寸適合我的屏幕,但其他圖片必須縮放才能適合。 到目前爲止,我得到了這個,有沒有辦法改善它並縮小圖片尺寸?例如,它現在有一半的大小?我需要在代碼中更改什麼?Java代碼的改進 - 縮放圖像

import java.awt.FlowLayout; 

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

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

class DisplayImage { 

    public static void main(String avg[]) throws IOException 
    { 
    DisplayImage img =new DisplayImage(); 
    } 

    public DisplayImage() throws IOException 
    { 
     BufferedImage img=ImageIO.read(new File("C://Address.jpg")); 
     BufferedImage ret = new BufferedImage(32,32,BufferedImage.SCALE_FAST); 
     ret.getGraphics().drawImage(img,0,0,32,32,null); 

     ImageIcon icon=new ImageIcon(img); 
     JFrame frame=new JFrame(); 
     frame.setLayout(new FlowLayout()); 
     frame.setSize(200,300); 

     JLabel lbl=new JLabel(); 
     lbl.setIcon(icon); 
     frame.add(lbl); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 
+0

這不是完全清楚的問題是什麼,但'新的BufferedImage(32,32,BufferedImage.SCALE_FAST);'是錯誤的:最後一個參數應該是圖像的**類型**,例如'BufferedImage.TYPE_INT_ARGB'。 – Marco13 2014-09-26 10:20:53

回答

0

您可以按比例用下面的代碼的圖像:

image.getScaledInstance(-1, 25, 
      java.awt.Image.SCALE_SMOOTH);