zoukankan      html  css  js  c++  java
  • 10.2图片处理

    从硬盘读取图片

    Image image = null;
    try {
    // Read from a file
    File file = new File("image.gif");
    image = ImageIO.read(file);

    // Read from an input stream
    InputStream is = new BufferedInputStream(
    new FileInputStream("image.gif"));
    image = ImageIO.read(is);

    // Read from a URL
    URL url = new URL("http://hostname.com/image.gif");
    image = ImageIO.read(url);
    } catch (IOException e) {
    }

    // Use a label to display the image
    JFrame frame = new JFrame();
    JLabel label = new JLabel(new ImageIcon(image));
    frame.getContentPane().add(label, BorderLayout.CENTER);
    frame.pack();
    frame.setVisible(true);

    产生缩略图  和  使两个图片合并到一起

    import java.awt.AWTException;
    import java.awt.Graphics;
    import java.awt.HeadlessException;
    import java.awt.Image;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.Toolkit;
    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;

    public class MyImage extends JFrame{

    @SuppressWarnings("deprecation")
    public MyImage(){
    JLabel jl = new JLabel();
    //Image im = this.getImage();
    Image im = null;
    try {
    im = this.margeImages();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    ImageIcon ic = new ImageIcon(im);
    jl.setIcon(ic);
    this.add(jl);
    this.setSize(600,450);
    this.show();
    }

    public static void main(String[] args){
    new MyImage();
    }

    public Image getImage(){
    Image img = null;
    try {
    /*
    * 截屏并产生缩略图
    */
    Robot myrobot = new Robot();
    BufferedImage bi = myrobot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
    /*
    * 产生缩略图的方法
    */
    img = bi.getScaledInstance(360, 250, BufferedImage.SCALE_AREA_AVERAGING);

    } catch (AWTException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return img;
    }

    public Image margeImages() throws IOException{
    BufferedImage b = null;
    Image img1 = null;
    Image img = null;
    try {
    /*
    * 截全屏
    */
    b = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
    img = b.getScaledInstance(b.getWidth(), b.getHeight(), BufferedImage.SCALE_SMOOTH);
    img1 = b.getScaledInstance(300, 200, BufferedImage.SCALE_SMOOTH);
    } catch (HeadlessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (AWTException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    /*
    * 获得画布
    */
    Graphics my_g = b.getGraphics();
    /*
    * 画另一副图
    */
    my_g.drawImage(img1, 100, 100, 200, 400,null);
    //my_g.drawImage(img,0,0,b.getWidth(), b.getHeight(),null);
    /*
    * 释放相应的资源
    */
    my_g.dispose();
    return img;
    }

    }





  • 相关阅读:
    OutputCache 缓存key的创建 CreateOutputCachedItemKey
    Asp.net Web Api源码调试
    asp.net mvc源码分析DefaultModelBinder 自定义的普通数据类型的绑定和验证
    Asp.net web Api源码分析HttpParameterBinding
    Asp.net web Api源码分析HttpRequestMessage的创建
    asp.net mvc源码分析ActionResult篇 RazorView.RenderView
    Asp.Net MVC 项目预编译 View
    Asp.net Web.config文件读取路径你真的清楚吗?
    asp.net 动态创建TextBox控件 如何加载状态信息
    asp.net mvc源码分析BeginForm方法 和ClientValidationEnabled 属性
  • 原文地址:https://www.cnblogs.com/Acmen/p/2198099.html
Copyright © 2011-2022 走看看