16. 26. 3. 装入想要尺寸的图片 Load Image and scale it
2011-10-07 12:11
465 查看
import javax.swing.JFrame; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.Image; import javax.swing.JButton; import javax.swing.JPanel; import java.awt.Graphics; import java.awt.BorderLayout; import javax.swing.JFileChooser; import java.io.File; import javax.swing.filechooser.FileFilter; import java.awt.Toolkit; /** *目的:打开一个图片,并且缩放它 *习惯了eclipse,今天用EditPlus搞一把,结果.... *结果感觉挺好,就是有点累,什么都得自己动手来,比如解个扣.... */ public class ImageFileFilterImageScale extends JFrame implements ActionListener{ Image img;//一张图片,什么图片,看下面怎么定它的? JButton getPictureButton = new JButton("获得图片"); public ImageFileFilterImageScale(){ this.setSize(300,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义一个装图片的面板 JPanel picPanel = new PicturePanel();//怎么装?看下面它的paint画方法吧 this.add(picPanel,BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); getPictureButton.addActionListener(this); buttonPanel.add(getPictureButton); this.add(buttonPanel,BorderLayout.SOUTH); this.setVisible(true); } class PicturePanel extends JPanel{ public void paint(Graphics g){//原来你是这么画的啊! g.drawImage(img,0,0,this); } } public void actionPerformed(ActionEvent e){ String file = getImageFile();//这里又调用了一个方法,看下面 if(file != null){//这是前提,不能不选择吧 //Toolkit:工具包,俺的理解,它是一个百宝箱,能做的事儿太多啦! Toolkit kit = Toolkit.getDefaultToolkit(); img = kit.getImage(file);//从百宝箱里拿一幅画给你 /**getScaleInstance()是指返回图像的缩放版本。 *宽300,俺理解,-1是高吗?答案是: *如果 width 或 height 为负数,则替换该值以维持初始图像尺寸的高宽比。 *如果 width 和 height 都为负,则使用初始图像尺寸。 *scale_smooth 选择图像平滑度比缩放速度具有更高优先级的图像缩放算法。 */ img = img.getScaledInstance(300,-1,Image.SCALE_SMOOTH); this.repaint(); } } private String getImageFile(){ JFileChooser fc = new JFileChooser();//新建一个文件选择器 fc.setFileFilter(new ImageFilter());//设置过滤类型,看下面重写的格式 int result = fc.showOpenDialog(null); File file = null;//先设置这个文件为空 if(result == JFileChooser.APPROVE_OPTION){ file = fc.getSelectedFile();//你选择什么,我的file就是什么 return file.getPath(); }else{ return null; } } public static void main(String[] args) { new ImageFileFilterImageScale(); } } class ImageFilter extends FileFilter{////重写了ImageFilter(),我们要过滤什么格式的文件 public boolean accept(File f){ if(f.isDirectory()){//是目录,返回true return true; } String name = f.getName(); if(name.matches(".*((.jpg)|(.gif)|(.png))")){ return true; }else{ return false; } } public String getDescription(){ return "图片格式(*.jpg,*.gif,*.png)"; } }
相关文章推荐
- Qt Load and Save Image Dialog 加载图片对话框
- iOS 7人机交互指南-Icon和Image设计-Icon and Image Sizes(icon和图片尺寸)
- iOS 7人机交互指南-Icon和Image设计-Icon and Image Sizes(icon和图片尺寸)
- iOS Icon and Image Sizes 图标图片尺寸
- 16. 3. 12. 鼠标拖拽及滑轮图形Move and scale graphical objects with a mouse on the panel
- how to create image file and format it
- ImageView的属性android:scaleType设置最佳比例图片显示
- LoadImage\LoadBitmap,加载的图片全是32位的解决方法
- ImageMagic identify 获取图片尺寸
- read a image and show it's channel
- Image Lazy Load:那些延时加载图片的开源插件(jQuery)
- php中使用getimagesize获取图片、flash等文件的尺寸信息实例
- Load and Display an Image
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
- getimagesize获取图片尺寸php函数
- Android开发获取ImageView显示的图片尺寸
- Saliency, Scale and Image Description
- Cordova页面加载外网图片失败,Refused to load the image
- SDWebImage设置UIImageView/UIButton的图片尺寸