读书频道 > 网站 > 网页设计 > Java数字图像处理:编程技巧与应用实践
2.1.3 BufferedImage对象的创建与保存
15-12-07    下载编辑
收藏    我要投稿   
本书分为两大部分,其中第一部为前三章,主要介绍Java Swing编程的基础知识。第二部分是本书的核心内容,系统全面地介绍图像处理的各种方法与常见应用场景编程实现。如果你已经对Java语言和Java Swing有基本的立即去当当网订购

根据不同的使用场景创建一个BufferedImage对象有三种常见方法,第一种方法是创建一个全新的BufferedImage对象,直接调用BufferedImage的构造函数。这在图形绘制的程序中比较常见,其代码如下:

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

其中width表示图像的宽度,height表示高度,最后一个参数声明图像字节灰度图像。

第二种方法是根据已经存在的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;
}

上述几种方法都是关于如何创建一个BufferedImage对象的,下面来看一下如何保存BufferedImage对象为本地图像文件。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.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站