BufferedImage的创建与保存

根据不同的使用场景创建一个BufferedImage对象有三种常见的方法。

第一种方法是创建一个全新的BufferedImage对象,直接调用BufferedImage的构造函数。其代码如下:

 BufferedImage bi = new BufferedImage(width, height,
                BufferedImage.TYPE_BYTE_GRAY);

第二种方法是根据已经存在的BufferedImage对象创建一个相同的copy体。其代码如下:

public BufferedImage createBufferedImage(BufferedImage src) {
        ColorModel cm = src.getColorModel();
        BufferedImage image = new BufferedImage(
                cm,
                cm.createCompatibleWritableRaster(src.getWidth(), src.getHeight()),
                cm.isAlphaPremultiplied(),
                null);
        return image;
    }

第三种方法是通过创建ColorModel与Raster对象实现BufferedImage对象的实例化。其代码如下:

public BufferedImage createBufferedImage(int width, int height, byte[] pixels) {
        ColorModel cm = getColorModel();
        SampleModel sm = getIndexSampleModel((IndexColorModel) cm, width, height);
        DataBuffer db = new DataBufferByte(pixels, width * height, 0);
        WritableRaster raster = Raster.createWritableRaster(sm, db, null);
        BufferedImage image = new BufferedImage(cm, raster, false, null);
        return image;
    }

Java中提供了ImageIO工具类来实现图像文件与BufferedImage对象之间的转换。

读取一个图像文件的代码如下:

public BufferedImage readImageFile(File file) {
        try {
            BufferedImage image = ImageIO.read(file);
            return image;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

保存BufferedImage对象为图像文件的代码如下:

public void writeImageFile(BufferedImage bi) throws IOException {
        File outputfile = new File("saved.png");
        ImageIO.write(bi, "png", outputfile);
    }

想了解更多关于数字图像处理:数字图像处理专栏

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值