java实现彩色图转变为灰度图
2009-12-10 21:59
183 查看
package work; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.color.ColorSpace; import java.awt.image.BufferedImage; import java.awt.image.ColorConvertOp; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Gray { public static void main(String[] args) throws IOException { BufferedImage transforImage; BufferedImage finalImage; TransGray gray=new TransGray(); transforImage=gray.srcImage; finalImage=gray.transformGrayJ2D(transforImage,null);//这里可能有问题,关于RenderingHints的取值不是很清楚 File f1=new File("f:/2graychange.jpg");//新图像输出 ImageIO.write(finalImage,"jpg",f1); System.out.println("End"); } } class TransGray { int width; int height; BufferedImage srcImage; public TransGray() throws IOException { File file =new File("F:/2.jpg"); srcImage =ImageIO.read(file); width=srcImage.getWidth(); height=srcImage.getHeight(); } public BufferedImage transformGrayJ2D(BufferedImage srcImage,RenderingHints hints) { BufferedImage dstImage = new BufferedImage(srcImage.getWidth(), srcImage.getHeight(), srcImage.getType()); if (hints == null ) { Graphics2D g2 = dstImage.createGraphics(); hints = g2.getRenderingHints(); g2.dispose(); g2 = null ; } ColorSpace grayCS = ColorSpace.getInstance(ColorSpace.CS_GRAY);//此抽象类用做一个颜色空间标记,标识 Color 对象的特定颜色空间,或者通过 ColorModel 对象标识 Image、BufferedImage 或 GraphicsDevice 的特定颜色空间。此类包含了可将指定颜色空间中的颜色与 sRGB 和定义良好的 CIEXYZ 颜色空间中的颜色进行相互转换的方法。 ColorConvertOp colorConvertOp = new ColorConvertOp(grayCS, hints);//此类对源图像中的数据执行逐像素的颜色转换。得到的颜色值可以扩展到目标图像的精度。颜色转换可以通过 ColorSpace 对象的数组或 ICC_Profile 对象的数组指定。 colorConvertOp.filter(srcImage, dstImage);// 对源 BufferedImage 进行颜色转换 return dstImage; } }
2009-12-10
相关文章推荐
- 使用 Java 进行图像处理 - 将彩色图像转换为灰度图
- Java Applet 实现一个半径不断增大的彩色小球动画
- java实现切图并且判断图片是不是纯色/彩色图片
- Java实现: 把二元查找树转变成排序的双向链表(树)
- 【LeetCode-面试算法经典-Java实现】【108-Convert Sorted Array to Binary Search Tree(排序数组转变为平衡二叉树)】
- OpenCV实现彩色图像转换为灰度图及二值化处理
- opencv+cuda实现彩色图转灰度图或二值化
- Java:利用接口实现打印机案例(墨盒有彩色和黑白色,纸张有A4纸和B5纸)
- 【老鸟学算法】二元查找树转变成排序的双向链表——算法思想及java实现
- Java实现彩色二维码
- 把二元查找树转变成排序的双向链表——Java实现
- RGB图像转灰度图(Matlab、OpenCV、Java实现)(一)
- 图像配准 - 三张灰度图合成彩色图 ECC算法 OpenCV C++/Python实现
- JAVA实现彩色图像转黑白(灰度)
- cocos2dx实现 彩色图转灰度图算法
- 因酷Java版开源网校系统,轻松实现线下到线上的转变
- C++实现类似Matlab的colormap Jet(灰度图生成彩色热度图)
- Java Applet 实现一个半径不断增大的彩色小球动画
- java实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
- 彩色图转灰度图算法 cocos2dx实现