2014-09-26 5 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

ответ

0

Вы можете масштабировать изображение с помощью следующего кода:

image.getScaledInstance(-1, 25, 
      java.awt.Image.SCALE_SMOOTH); 
Смежные вопросы