2014-09-26 68 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);