版权声明:转载时请务必保留以下作者信息和链接
作者:陈维(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语言为数字图像处理提供了一个强大而灵活的平台,无论你...
在数字图像处理领域,Java是一种常用的编程语言,其丰富的库和强大的面向对象特性使得它非常适合进行复杂的图像操作。本项目涵盖了图像处理的多个关键方面,包括图像增强、图像复原、图像编码与压缩以及图像分割与...
标题《数字图像处理-Java语言算法描述》意味着本文将围绕数字图像处理技术与Java语言的结合进行阐述。从描述中可知,该文档可能引用了Wilhelm Burger和Mark J. Burge编著的《Digital Image Processing》一书,这是一...
JavaCV提供了一个Java接口,使得Java开发者可以轻松地利用OpenCV的强大功能,例如图像处理、特征检测、物体识别等。 3. **FFmpeg** FFmpeg是一个强大的多媒体处理工具,用于音频和视频的编码、解码、转换和流化。...
本篇文章将深入探讨如何利用Android的MediaCodec API来从摄像头采集图像并进行硬件编码,以及如何通过FFmpeg实现软件编码。我们还将讨论`MainActivity.java`文件中可能涉及的关键代码段。 首先,Android的...
总之,JavaCV平台1.5.3版为Java开发者提供了一个便捷的途径,使他们能够在Java环境中无缝使用OpenCV和FFmpeg,进行图像处理、视频分析、机器学习等复杂任务。借助JavaCV,开发者可以专注于算法设计,而无需过多关注...
总结来说,`javacv-platform-1.5.4.zip`是一个用于Java环境的计算机视觉开发包,它整合了OpenCV和FFmpeg等强大工具,使得Java开发者能够方便地进行图像处理、视频分析和深度学习等任务,而无需深入学习底层的C/C++...
1. **Java图像处理库**:Java提供了丰富的API来处理图像,如Java AWT(Abstract Window Toolkit)和Swing库中的`java.awt.image`包。这些库包含了基本的图像处理功能,如图像的加载、显示、保存和颜色空间转换。 2....
总的来说,"javacv-platform-1.4.4-bin.zip"是Java图像处理的一个强大工具包,它整合了多个重要的计算机视觉和多媒体处理库,为Java开发者提供了一套全面且易用的接口,使得在Java环境中进行复杂的图像、视频和语音...
11. **JAVA图像处理库**:如OpenCV的JAVA接口,它可以提供更高级的图像处理功能,如对象识别、人脸识别等。 在"CODE"文件夹中,你可能会找到对应的源代码示例,涵盖了上述知识点的实际应用。通过阅读和分析这些代码...
JavaCV(Java Computer Vision)是一个开源项目,它为Java和Android开发者提供了计算机视觉库的便捷接口,使得在这些平台上进行图像处理和计算机视觉任务变得更为简单。标题中的"javacv-platform-1.5.1-bin-part16_...
1. 图像处理模块:使用 Java 语言实现了图像处理算法,以对油管图像进行处理和分析。 2. 图像识别模块:使用 Java 语言实现了图像识别算法,以确定标识信息。 3. 编码模块:使用 Java 语言实现了编码算法,以将标识...
-Java语言实现》介绍了数字图像处理的基本原理和方法,包括计算机数字图像处理的发展历史和主要内容、计算机数字图像处理的数学变换、模拟图像转换成数字图像的基本原理、图像增强、图像复原、图像的编码与压缩、...
Java图像处理主要涉及Java Advanced Imaging (JAI) API和Java Image I/O (JIO) API。JAI API是Sun Microsystems开发的一个高级图像处理工具,它作为Java Media Framework的一部分,为Java 2D API提供了扩展,专门...
总的来说,`javacpp-1.4.1.jar`和`javacv-platform-1.4.1.jar`是JavaCV的关键组成部分,它们使得Java开发者能够轻松地利用底层的计算机视觉和多媒体处理能力,实现复杂的图像处理和视频分析任务。在实际项目中,了解...
首先,OpenCV是JavaCV的核心部分,它是一个广泛使用的计算机视觉库,包含了众多图像处理和计算机视觉算法。在JavaCV 1.3中,你可以找到用于图像处理、特征检测、对象识别、人脸识别等功能的API。例如,高斯模糊、...
这可能涉及到图像处理算法,如色彩空间转换、图像增强等。 5. **时间轴和字幕处理**:视频通常包含时间轴信息,用于同步音频和视频。如果视频有字幕,还需要解析字幕文件(如SRT或ASS),并与视频帧对应。 6. **多...
Java图像处理源代码是关于利用Java编程语言对图像进行各种操作和分析的程序集合。Java提供了丰富的库,如Java Advanced Imaging (JAI) 和 Java 2D API,使得开发人员能够方便地实现图像的读取、显示、编辑、转换以及...
OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,包含了大量的图像处理和计算机视觉的算法,用于实时的图像分析、识别和处理。JavaCV与OpenCV的结合,使得Java开发者可以利用OpenCV的...
Java图像处理是计算机科学中的一个重要领域,特别是在人工智能和视觉编程中有着广泛的应用。Java作为一种跨平台的编程语言,提供了丰富的库和API来支持图像处理任务,使得开发者能够创建功能强大的图像处理应用程序...