用Java进行图像处理,会遇到ColorSpace这个类:
ColorSpace
public abstract class ColorSpace extends Object implements Serializable
这个类的作用用官方语言就是就很困惑了,我这里举一个例子大家就明白这个类是做什么的了,大家利用Photoshop新建一副图片的时候都要选择“颜色模式”
图片中的“颜色模式”就是我们这里的ColorSpace。我们可以利用ColorSpace将一个颜色模式抓换成另一个颜色模式。这点也好理解:你把一副彩色图片复制到灰度图片上,图片就是一个灰色的图片。
ColorSpace作用:
1.用做一个颜色空间标记,标识 Color 对象的特定颜色空间。
2.通过 ColorModel 对象标识 Image、BufferedImage 或 GraphicsDevice 的特定颜色空间。
3.将指定颜色空间中的颜色与 sRGB 和定义良好的 CIEXYZ 颜色空间中的颜色进行相互转换的方法。
我们已经知道颜色空间(模式)了,现在就看看它怎么使用,首先需要一个类:
ColorConvertOp
public class ColorConvertOp extends Object
看名字也知道它的作用了:颜色转换操作类。它的作用就是将一个颜色模式的图片转换为另一个颜色模式的图片。知道了这些我就轻易的将一副彩色(RGB)颜色的图片编程灰色(黑白)颜色的图片,原理就是利用ColorConvertOp将图片编成灰色图片。代码非常简单:
public final BufferedImage getGrayPicture(BufferedImage originalPic) {
int imageWidth = originalPic.getWidth();
int imageHeight = originalPic.getHeight();
BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
BufferedImage.TYPE_3BYTE_BGR);
ColorConvertOp cco = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
cco.filter(originalPic, newPic);
return newPic;
}
解析下上面的函数:
首先创建一个图片存储空间newPic,我们定义它的空间类型为:TYPE_3BYTE_BGR(也可以是TYPE_BYTE_GRAY,后者会损失更多的细节),然后利用ColorConvertOp,将一个RGB颜色的图片originalPic转换为灰度图片newPic。得到这个灰度图片newPic后,我们就可以在页面上显示和存储了。
利用BufferedImage.TYPE_3BYTE_BGR存储获得的新图片:
利用BufferedImage.TYPE_BYTE_GRAY存储获得的新图片:
完整的程序代码见附件
文章地址:
http://javapub.iteye.com/blog/687082
相关文章
Java图像图片 边缘检测 http://javapub.iteye.com/blog/685468
Java图像变灰 http://javapub.iteye.com/blog/687082
Java 给图片增加 水印图片 水印文字 [url]Java 给图片增加 水印图片 水印文字[/url]
Java图像渐变 http://javapub.iteye.com/blog/736799
Java将大图片转成小图片 http://javapub.iteye.com/blog/666607
分享到:
相关推荐
在Java编程语言中,开发一个类似Windows画图的小程序是一项有趣的挑战,它涉及到图形用户界面(GUI)的设计和图像处理技术。本项目的核心是利用Java的AWT(Abstract Window Toolkit)或Swing库来创建图形界面,并...
在Java中进行图像识别,尤其是判断两张图片是否相似,是一个涉及计算机视觉和图像处理的复杂任务。本话题将深入探讨如何使用Java实现这一功能。在实际应用中,图像相似度判断广泛应用于图像检索、内容识别、人脸识别...
java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 ...
在Java编程语言中,图像处理是一项重要且实用的技能,特别是在开发图形用户界面(GUI)应用、游戏或者数据可视化项目时。本实例主要探讨如何利用Java进行图像...这些知识对于Java开发者在处理图像相关任务时非常实用。
我们将探讨Java中的AWT和Swing库提供的`java.awt.image.BufferedImage`类以及相关的图像处理方法,以实现这一功能。 首先,我们需要理解`BufferedImage`类。它是Java标准库中的核心图像处理类,提供了丰富的功能,...
下面将详细介绍如何使用Java实现图像的压缩和传输,以及涉及的相关知识点。 1. **图像压缩**: - **JPEG压缩**:Java支持JPEG格式的图像压缩,通过`javax.imageio.ImageIO`类的`write`方法,可以将图像写入JPEG...
【JAVA中级篇】线程池相关类
通过理解图像处理的基本原理,结合Java的相关API,开发者可以创建出高效的图像压缩解决方案,满足不同应用场景的需求。这个"java实现图像压缩.txt"文件很可能是对这个过程的一个详细教程,值得深入学习和研究。
本项目是利用Java编程语言实现的图像相似度识别系统,其准确率高达95%,对于提高用户体验和商品搜索效率具有显著作用。 首先,我们来探讨Java在图像处理中的应用。Java提供了丰富的库和API,如Java Advanced ...
《色彩空间转换技术详解——基于.ColorSpace.demo演示》 在计算机图形处理和图像分析领域,色彩空间转换是一项至关重要的技术。本文将通过介绍名为"ColorSpace demo"的演示程序,深入探讨RGB、YUY2和NV12这三种常见...
在Java编程语言中,处理图像是一项常见的任务,包括图片的旋转、翻转和镜像操作。这些功能在很多场景下都很实用,例如照片编辑、图像处理应用或是网页开发。本篇将详细介绍如何使用Java实现这些功能,并以`ImgRotate...
2. **颜色模型转换**:Java支持RGB、CMYK、灰度等多种颜色模型,可以使用Color类的getRed(), getGreen(), getBlue()等方法获取像素颜色,并通过构造新的Color对象进行转换。 3. **图像裁剪**:通过获取图像的...
总之,这个项目提供了一个全面的数字图像处理实践平台,对于学习和开发相关应用的JAVA程序员来说,是一个极具价值的资源。它不仅包含实际运行的软件,还有源码供深入研究,对于提升图像处理技能和理解JAVA编程有极大...
《数字图像处理——Java语言实现》是由王宏和赵海滨两位专家共同编著的一本专业书籍,该书详细探讨了如何使用Java编程语言进行数字图像处理。2005年出版的这本书随书附带了一个光盘映像,其中包含了作者们精心设计的...
要深入理解这个项目,你需要阅读源码,了解各个类和方法的功能,同时查阅相关API文档以理解Java图像处理的相关技术。如果你打算对项目做贡献或自定义功能,了解开源许可证的规定至关重要,确保你的行为符合其要求。
标题 "PJBlog2 ColorSpace" 暗示我们正在讨论的是一个针对PJBlog2平台的特定主题或模板,名为"ColorSpace"。PJBlog2是一个早期的博客系统,它允许用户自定义其博客的外观和功能。"ColorSpace"很可能是一个设计主题,...
在这个Java毕业设计项目中,你将有机会学习到如何利用Java来创建一个图形图像处理系统,同时也会涉及到相关的理论研究,如论文撰写。 首先,Java作为一门强大的面向对象编程语言,提供了丰富的库来支持图像处理。最...
JAVA作为一种跨平台的编程语言,为开发者提供了丰富的库和工具,使得图像处理软件的开发变得相对容易。本实验报告主要探讨了使用JAVA进行图像处理软件开发的关键技术和步骤。 首先,实验中提到了JAVA编程B课程,其...
核心类`java.awt.image.BufferedImage`是处理图像的基本对象,可以用来加载、显示和操作图像。此外,`javax.imageio.ImageIO`类提供了一种方便的方式来读取和写入各种格式的图像文件。 采样过程通常包括两个关键...
这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等。下面将详细介绍这些工具类以及它们在处理数据、日期、图像、XML和HTML等方面的应用。 1. **数据处理**...