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

}





原文地址:https://www.cnblogs.com/Acmen/p/2198099.html