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();
}
}
解决方案 »
- String equals写法
- 请问,垃圾回收的时候会不会自动进行内存碎片整理啊?
- 0.0001为什么输出时是1.0E-4
- 关于中文显示的问题
- 在调试中出现 "row index out of change"?怎么解决?求助!
- 用jdbc连接sql server数据库问题,急问!高手请进
- 2000与unix做服务器对Applet有什么影响???
- 为什么还出现Exception in thread "main" java.lang.NoClassDefFoundError: Client(wrong name Helloworld/Client)
- 请问高手你们有的java开发工具是什么
- 有问题请教,紧急
- 关于 JdbComboBox 取出数据库数据以后怎么获得选定的数据的问题
- 自己结合网上资料写的一个java图像灰度化程序,编译可以通过,但运行不行,请大家帮忙修改一下!谢谢!
运行哪里不行?
无结果还是报错为什么要继承Frame?感觉乱