Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 243|回复: 0

[图像处理学习]载入图片的几种常用方法

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-30 23:57:11 | 显示全部楼层 |阅读模式
    载入图片的几种常用方法
       
    /**
       
    * <p>Title: PaintPanel</p>
       
    * <p>Description:此程序演示如何载入图片,并让其作为panel的背景</p>
       
    * <p>Copyright: Copyright (c) 2005</p>
       
    * <p>Company: gift2u</p>
       
    * @author liwu chinajavaworld
       
    * @version 1.0
       
    */
       
    import javax.swing.*;
       
    import java.awt.Graphics;
       
    import java.awt.Graphics2D;
       
    import java.awt.Image;
       
    import java.net.URL;
       
    import java.net.*;
       

       
    import java.awt.MediaTracker;
       
    import java.io.File;
       
    import javax.imageio.ImageIO;
       
    import java.io.*;
       
    import java.awt.Toolkit;
       

       
    public class PaintPanel
       
         extends JPanel {
       
       Image image = null;
       

       
       /**
       
        * PaintPanel
       
        * 外部给图片,直接载入
       
        * @param image Image
       
        */
       
       public PaintPanel(Image image) {
       
         this.image = image;
       
       }
       

       
       /**
       
        * PaintPanel
       
        * 外部给出file引用,通过ImageIO载入
       
        * @param file File
       
        */
       
       
       

       
      
      
      public PaintPanel(File file) {
         try {
           Image readImage = ImageIO.read(file);
           this.image = readImage;
         }
         catch (IOException ex) {
         }
       }
      
    /**
        * PaintPanel
        *外部给出string路径,通过Toolkit载入
        * @param string String
        */
       public PaintPanel(String string) {
         URL url = null;
         try {
           url = new URL(string);
         }
         catch (MalformedURLException ex) {
         }
         image = Toolkit.getDefaultToolkit().getImage(url);

         MediaTracker tracker = new MediaTracker(this);
         tracker.addImage(image, 0);
         try {
           tracker.waitForID(0);
         }
         catch (InterruptedException ie) {
         }

       }

       /**
        * PaintPanel
        *外部给出ImageIcon,利用ImageIcon载入
        * @param icon ImageIcon
        */
       public PaintPanel(ImageIcon icon) {
         this.image = icon.getImage();
       }

       /**
        * PaintPanel
        * 外部给出URL,利用ImageIcon载入
        * @param icon url
        */
       public PaintPanel(URL url) {
         ImageIcon icon = new ImageIcon(url);
         this.image = icon.getImage();
       }

       public void paintComponent(Graphics g) {
         super.paintComponent(g);
         Graphics2D g2d = (Graphics2D) g;
         if (image != null) {
           g2d.drawImage(image, 0, 0, this);
         }
       }
    }
      
      
      测试代码: import javax.swing.JFrame;
    import java.net.URL;
    import javax.swing.ImageIcon;
    import java.awt.MediaTracker;
    import java.awt.Image;
    import java.net.MalformedURLException;
    import java.awt.GridLayout;
    import javax.swing.JDialog;
    import java.io.File;

    public class TestPaintPanel  {
      public static void main(String[] args) {
        JFrame fr = new JFrame();
        fr.setTitle("GIFT-PaintPanel-演示载入图片的方法");
        String urlstr = "http://photo.sohu.com/20040823/Img221677764.jpg";
        String filestr="D://a.jpg";
    //如果是自己的机器上...un comment following......
    //   String urlstr="file:///D://a.jpg";
        URL url = null;
        try {
          url = new URL(urlstr);
        }
        catch (MalformedURLException ex) {
        }

        ImageIcon icon = new ImageIcon(url);

        //////////////////loadimage//////////////////////
        Image image = fr.getToolkit().getImage(url);
        MediaTracker tracker = new MediaTracker(fr);
        tracker.addImage(image, 0);
        try {
          tracker.waitForID(0);
        }
        catch (InterruptedException ie) {}
        ////////////////////////////////////////////////
        fr.getContentPane().setLayout(new GridLayout(2, 2));
        fr.setSize(500, 600);

        fr.getContentPane().add(new PaintPanel(image));
        fr.getContentPane().add(new PaintPanel(urlstr));
        fr.getContentPane().add(new PaintPanel(icon));
        fr.getContentPane().add(new PaintPanel(url));
        //this is a litter different...
        JDialog dialog = new JDialog(fr, "GIFT-演示让图片成为背景", true);
        //本机上的文件...
        dialog.getContentPane().add(new PaintPanel(new File(filestr)));
        dialog.setSize(200, 200);

        fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        fr.setVisible(true);
        dialog.setVisible(true);
        fr.validate();
      }

    }[/code] : 运行图:




      
      
       
       

         
       

         
       
      

      

      










    源码下载:http://file.javaxxz.com/2014/10/30/235711218.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-18 23:47 , Processed in 0.351258 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表