JAvaカラー画像をグレーに変更
2216 ワード
package com.test;
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 DecimalFormatDemo {
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("d:/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("d:/uuuu2.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;
}
}