import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.*;
public class image extends Frame
{
public static int w,h;
public static int ipixels[];
Image Buf,img=null;
public void initVal(){
String path="D:\\image\\79.jpg";
img=this.getToolkit().getImage(path);
w=img.getWidth(null);
h=img.getHeight(null);
ipixels=new int[w*h];
PixelGrabber pg = new PixelGrabber(img, 0, 0, w,h, ipixels, 0, w);//将RGB像素值存入ipixels
}
/*获取灰度值*/
public static double[] getGrayValue(){
double grayValue[] = new double[ipixels.length];
for ( int i = 0; i < ipixels.length; i++ ){
int r = (ipixels[i] >> 16)& 0xff;
int g = (ipixels[i] >> 8 )& 0xff;
int b = (ipixels[i] )& 0xff;
grayValue[i] = 0.2990 * r + 0.5870 * g + 0.1140 * b;
}
return grayValue;
}
public void showImage()
{
Image pic=createImage(new MemoryImageSource(w,h,grayValue,0,w));
Buf.getGraphics().drawImage(pic,0,0,this); //显示黑白图片;
}
public void showGrayArrayImg(int[] grayArray,int w,int h){
for(int i=0;i<grayArray.length;i++) {
grayArray[i]=(255<<24)|(grayArray[i]<<16)|(grayArray[i]<<8)|grayArray[i];
}
Image im= createImage((ImageProducer)new MemoryImageSource(w,h,grayArray,0,w));
}
public static void main(String[] args)
{
image my=new image();
my.initVal();
my.getGrayValue();
my.showImage();
}
}
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.*;
public class image extends Frame
{
public static int w,h;
public static int ipixels[];
Image Buf,img=null;
public void initVal(){
String path="D:\\image\\79.jpg";
img=this.getToolkit().getImage(path);
w=img.getWidth(null);
h=img.getHeight(null);
ipixels=new int[w*h];
PixelGrabber pg = new PixelGrabber(img, 0, 0, w,h, ipixels, 0, w);//将RGB像素值存入ipixels
}
/*获取灰度值*/
public static double[] getGrayValue(){
double grayValue[] = new double[ipixels.length];
for ( int i = 0; i < ipixels.length; i++ ){
int r = (ipixels[i] >> 16)& 0xff;
int g = (ipixels[i] >> 8 )& 0xff;
int b = (ipixels[i] )& 0xff;
grayValue[i] = 0.2990 * r + 0.5870 * g + 0.1140 * b;
}
return grayValue;
}
public void showImage()
{
Image pic=createImage(new MemoryImageSource(w,h,grayValue,0,w));
Buf.getGraphics().drawImage(pic,0,0,this); //显示黑白图片;
}
public void showGrayArrayImg(int[] grayArray,int w,int h){
for(int i=0;i<grayArray.length;i++) {
grayArray[i]=(255<<24)|(grayArray[i]<<16)|(grayArray[i]<<8)|grayArray[i];
}
Image im= createImage((ImageProducer)new MemoryImageSource(w,h,grayArray,0,w));
}
public static void main(String[] args)
{
image my=new image();
my.initVal();
my.getGrayValue();
my.showImage();
}
}
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 GrayTest {
public static void main(String[] args) {
BufferedImage image;
try {
image = ImageIO.read(new File("test.jpg"));
ImageIO.write(transformGrayJ2D(image, null), "jpg",
new File("gray.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static BufferedImage transformGrayJ2D(BufferedImage srcImage,
RenderingHints hints) {
BufferedImage dstImage = new BufferedImage(srcImage.getWidth(),
srcImage.getHeight(), srcImage.getType()); ColorSpace grayCS = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp colorConvertOp = new ColorConvertOp(grayCS, hints);
colorConvertOp.filter(srcImage, dstImage); return dstImage;
}
}