• 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;
    }

    }





  • 相关阅读:
    MongoDB zip 包安装注意事项及过程
    20个免费的React Admin仪表板模板
    React常用的5个UI框架
    create-react-app my-app出错
    查看Vue,React等框架的排名以及编程语言的排名
    flex流动布局中的单个子元素位置如何自定义
    小程序跳转页面后,动态刷新跳转页面
    table表格动态合并
    Windows 10 提权漏洞复现及武器化利用
    ISO:Fedora/Centos-6/7-LiveCD 利用iso文件 本地硬盘安装:方式1:Grub4Dos partnew模拟
  • 原文地址:https://www.cnblogs.com/Acmen/p/2198099.html
Copyright © 2020-2023  润新知