1、图像的信息构成
像素数据
元数据属性
格式信息
文件信息
2、Java语言API
BufferedImage对象
ImageIO读写图像文件
Android中的Bitmap对象
BitmatFactory
3、代码演示
BufferedImage对象
package src;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class ImagePanel extends JComponent {
private static final long serialVersionUID = 1L;
private BufferedImage image;
public ImagePanel(BufferedImage image) {
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
if (image != null) {
System.out.println("width:" + image.getWidth());
System.out.println("heigth:" + image.getHeight());
int pex = image.getRGB(10, 10);// 获取图像RGB的值
System.out.println("p(10,10):" + pex);
g2d.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
}
}
public static void main(String[] args) {
File f = new File("G:\\1518772218209.jpg");// 本地图片路径
System.out.println(f.getPath());
try {
BufferedImage images = ImageIO.read(f); // 将图片转化为流对象
JFrame frame = new JFrame();// java的一个窗口
ImagePanel imp = new ImagePanel(images); // 将流对象注入进来
frame.getContentPane().add(imp, BorderLayout.CENTER); // 窗口布局
frame.setSize(600, 600); // 窗口大小
frame.setTitle("演示"); // 窗口标题
frame.setVisible(true);// 显示
} catch (IOException e) {
e.printStackTrace();
}
}
}
Android中的Bitmap对象