`
61party
  • 浏览: 1054150 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用 Java 进行图像处理 - 图像编码输出

阅读更多

版权声明:转载时请务必保留以下作者信息和链接
作者:陈维(chenweionline@hotmail.com)作者的网站:http://www.chenwei.mobi

图像编码输出的方法,提供编码进度监听,向图像文件中添加缩略图和设置编码质量的支持(特定格式,例如 JPG)。

这个方法支持的编码格式依赖运行环境里 ImageIO 已经注册 ImageWriter 集合。

Java SE 6 中的 ImageIO 默认支持 JPG, BMP, PNG, GIF 等格式,也可以通过非标准类库添加 ImageIO 对图像格式的支持,比如安装 JAI_ImageIO 。

/***//**
*编码输出图像。
*向图像文件中添加图像缩略图和设置图像压缩质量需要根据具体图像格式。
*
*
@paramout输出流。
*
@paramlistener编码输出进度监听器。
*
@paramformatName包含格式非正式名称的String,例如"jpg"。
*
@paramimage图像。
*
@paramthumbnails缩略图集。
*
@paramquality压缩质量。
*
@throwsjava.io.IOException
*/

publicstaticvoidwrite(
ImageOutputStreamout,
IIOWriteProgressListenerlistener,
StringformatName,
BufferedImageimage,
List
<?extendsBufferedImage>thumbnails,
floatquality)throwsIOException...{
if(out==null)...{
thrownewIllegalArgumentException("OutputStreammustbenonnull");
}


if(formatName==null)...{
thrownewIllegalArgumentException("FormatNamemustbenonnull");
}


if(image==null)...{
thrownewIllegalArgumentException("Imagemustbenonnull");
}


//取得合适的ImageWriter。
Iteratorwriters=ImageIO.getImageWritersByFormatName(formatName);
if(writers==null||!writers.hasNext())...{
thrownewIllegalStateException("No"+formatName+"writers!");
}

ImageWriterwriter
=(ImageWriter)writers.next();

ImageTypeSpecifierimageType
=ImageTypeSpecifier.createFromRenderedImage(image);
IIOMetadatametadata
=writer.getDefaultImageMetadata(imageType,null);

IIOImageiioImage
=newIIOImage(image,thumbnails,metadata);

ImageWriteParamparam
=writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(quality);

writer.setOutput(out);
writer.addIIOWriteProgressListener(listener);
writer.write(
null,iioImage,param);
writer.dispose();
}
分享到:
评论

相关推荐

    数字图像处理-Java代码

    用Java语言实现对图像的各种处理:图像增强,图像复原,图像编码与压缩,图像分割与描述等

    Z00604数字图像处理:JAVA语言实现.rar

    -Java语言实现》介绍了数字图像处理的基本原理和方法,包括计算机数字图像处理的发展历史和主要内容、计算机数字图像处理的数学变换、模拟图像转换成数字图像的基本原理、图像增强、图像复原、图像的编码与压缩、...

    基于java的图像处理源代码

    此文件包含了基于java的图像处理源代码,具体有图像灰度变换、阈值变换、线性变换、伪彩色处理、图像融合、图像合成、内置变换、仿射变换、图像插值、边缘检测、图像分割、hough变换、图像编码、分形演示等等等等,...

    java源码包---java 源码 大量 实例

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    数字图像处理:Java语言算法描述

    《数字图像处理:Java语言算法描述》内容简介:数字图像处理作为计算机视觉、遥感图像处理与识别、医学图像处理、视频编码与处理、图像与视频检索等的基础知识,已经成为了计算机科学与技术、信号与信息处理等相关...

    数字图像处理:Java语言算法描述.pdf

    数字图像处理作为计算机视觉、遥感图像处理与识别、医学图像处理、视频编码与处理、图像与视频检索等的基础知识,已经成为了计算机科学与技术、信号与信息处理等相关专业的必修基础课程之一。 本书没有将数字图像...

    java jdk-api-1.6 中文 chmd

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    VTK User's Guide(中文完整版)

    使用数据属性进行工作 颜色映射 轮廓化 浮雕化 流线图 流线表面 剪裁 融合数据 附加数据 用另外一个尺度给等值面赋颜色 抽取单元格子集 抽取单元格作为多边形数据 5.2 可视化多边形数据---------------...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.7.2 将图片输出到JSP页面之中 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务 2.1.1 本章知识体系 2.1.2 ...

    JAVA_API1.6文档(中文)

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    中值滤波代码matlab-Java_PDI_Tools:用Java编码的数字图像处理工具箱

    这是在JAVA中实现的传统数字图像处理算法的集合,例如图像过滤,恢复和形态运算。 这不是优化的代码,因为这是拉斐尔·冈萨雷斯(Rafael C. Gonzalez)和理查兹(Richards E. Woods)在研究本书时开发的自学项目。 ...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包5

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包10

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java JMF2.1 -windows版下载

    采用各种Java Media API,软件开发商人员就能容易、快速地为他们已有的各种应用程序和客户端Java小程序增添丰富的媒体功能,如流式视频、3D图像和影像处理等。就是 说,各种Java Media API发挥了Java平台的固有优势...

    java源码包4

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包1

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包8

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

Global site tag (gtag.js) - Google Analytics