java AWT ImageIO(输入/输出位图)

ImageIO可以访问磁盘上的位图文件,如GIF,JPG等格式图片。
ImageIO利用ImageReader和ImageWriter读写图形文件。
ImageIO类并不支持读写全部格式的图形文件,程序可以通过ImageIO类的如下几个静态方法来访问该类所支持读写的图形文件格式。
static String[] getReaderFileSuffixes():返回一个String数组,该数组列出ImageIO所有能读的图形文件后缀。
static String[] getReaderFormatNames():返回一个String数组,该数组列出ImageIO所有能读图形文件的非正式名称。
static String[] getWriterFileSuffixes():返回一个数组,该数组列出ImageIO所有能写图形的文件后缀。
static String[] getWriterFormatNamges():返回一个String数组,该数组列出ImageIO所有能写图形文件的非正式格式名称。

package javaAWT;

import javax.imageio.ImageIO;

public class ImageIOTest {

    public static void main(String[] args) {
        String[] readFormat = ImageIO.getReaderFormatNames();
        System.out.println("Reader Format:");
        for (String tmp : readFormat) {
            System.out.print(tmp+" ");
        }

        String[] writeFormat = ImageIO.getWriterFormatNames();
        System.out.println("\n");
        System.out.print("Writer Formate:\n");
        for (String tmp : writeFormat) {
            System.out.print(tmp+" ");
        }
    }

}

//输出结果:
Reader Format:
JPG jpg bmp BMP gif GIF WBMP png PNG wbmp jpeg JPEG 

Writer Formate:
JPG jpg bmp BMP gif GIF WBMP png PNG wbmp jpeg JPEG 
package javaAWT;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.security.KeyStore.PrivateKeyEntry;

import javax.imageio.ImageIO;

public class ZoomImage {

    // 缩小后的图片大小
    private final int WIDTH = 80;
    private final int HEIGHT = 60;
    // 定义一个BufferedImage对象,用于保存缩小后的位图
    BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_BGR);
    Graphics graphics = image.getGraphics();

    public void zoom() throws Exception {
        // 读取原始位图
        Image srcImage = ImageIO.read(new File("D://123.jpg"));
        // 将原始位图缩小后绘制到image对象中
        graphics.drawImage(srcImage, 0, 0, WIDTH, HEIGHT, null);
        // 将image对象输出到磁盘文件中
        ImageIO.write(image, "jpeg", new File("D://"+System.currentTimeMillis() + ".jpg"));

    }

    public static void main(String[] args) {
        try {
            new ZoomImage().zoom();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java,GUI)