5 07, 2007
ÓÃJAVA¶Ô²ÊɫͼƬ½øÐлҶȱ任(ת)
---- »Ò¶È±ä»»µÄËã·¨ÆäʵºÜ¼òµ¥£¬Ö»ÒªÌáȡÿ¸öÏóËØµãµÄºì¡¢ÂÌ¡¢À¶ÈýÔÉ«£¬È»ºó¸ù¾Ý¹«Ê½£º»Ò¶ÈÖµ= ºìÉ«ÁÁ¶ÈÖµ*30%+ÂÌÉ«ÁÁ¶ÈÖµ*59%+À¶É«ÁÁ¶ÈÖµ*11%£¬¼ÆËã³öÒ»¸ö»Ò¶ÈÖµ£¬²¢½«Æä×÷Ϊºì£¬ÂÌ£¬À¶ÈýÔÉ«µÄÐÂÖµÖØÐÂд»ØÏÔ´æ¼´¿É¡£
---- ¾ßÌå²½ÖèÈçÏ£º
---- Ò»£¬µ÷ÓÃGraphics ¶ÔÏóµÄdrawImage() ·½·¨£¬ÔÚapplet ÖÐÏÔʾ³öÒ»·ùÃûΪ TEST.JPG µÄ²ÊɫͼÏó£¬drawImage() µÄµ÷ÓÃÐÎʽΪ£º g.drawImage(name,x,y, width,heigth,this)¡£
---- ¶þ£¬¶¨ÒåÒ»¸öÊý×é´æ·ÅÕâ·ù²ÊɫͼÏñµÄRGB Öµ£¬Êý×é´óС¾ÍÊÇͼÏñµÄÏóËØ¸öÊý¡£Ê¹ÓÃPixelGrabber()»ñȡÿ¸öÏóËØµãµÄRGBÖµ¡£
---- Èý£¬Ê¹ÓûҶȱ任¹«Ê½¼ÆËã³öÿ¸öÏóËØµãµÄ»Ò¶ÈÖµ£¬²¢½«Æä×÷ΪеÄRGB Öµ´æ·Å»ØÊý×éÖУ¬ÔÙµ÷ÓÃcreateImage()·½·¨¹¹Ôì³öеĺڰ×ͼÏó¡£
---- ËÄ£¬ÏÔʾ³ö¸ÃºÚ°×ͼƬ¡£ÎªÁË·ÀÖ¹±ä»»¹ý³ÌÖеÄÉÁ˸ÏÖÏ󣬳ÌÐòÖл¹Ê¹ÓÃÁËË«»º³å¼¼Êõ£¬¼´ÏÈÔÚÐéÆÁÖлºÃͼÏó£¬ÔÙÒ»´ÎÐÔµÄÏÔʾ³öÀ´¡£
---- ³ÌÐòÖÐʹÓÃÊó±êÀ´¿ØÖƲÊÉ«µ½ºÚ°×µÄ±ä»»¡£
---- »Ò¶È±ä»»µÄtt4.javaÔ´³ÌÐòÈçÏÂËùʾ£º
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class tt4 extends Applet
{
Image art,Buf;
int onced=0;
boolean is_color=true;
Graphics Bufg;//ʹÓÃË«»º³åÇø¼¼ÊõÒÖÖÆÉÁ˸£»
Dimension xy=null;
public void init()
{ art=getImage(getDocumentBase(),"test.jpg");
resize(640, 480);//×°ÈëͼƬ£»
}
public void paint(Graphics g)
{ if (onced==0)
//Èç¹ûÊǵÚÒ»´Î×°ÈëͼƬ£¬ÔòÖ±½ÓÏÔʾ£»
{ g.drawImage(art,0,0,this);
}
if ((onced==1)||(onced==2))
//Èç¹ûÕýÔÚ½øÐлҶȱ任£¬ÔòÌáʾµÈ´ý£»
{ g.setColor(new Color(255,200,0));
g.drawString("running!", 1, 30);
}
if (onced==3)
//Èç¹û»Ò¶È±ä»»Íê±Ï£¬ÔòÏÔʾ½á¹û£»
{ if (is_color) g.drawImage(Buf,0,0,this);
else g.drawImage(art,0,0,this);
is_color=!is_color;//ÔÚ²ÊÉ«ÓëºÚ°×Ö®¼ä±ä»¯£»
}
}
public boolean mouseDown(Event evt, int x, int y)
{ if (onced==0)
{ onced=1;
}
repaint();//ÓÃÊó±ê´¥·¢Ê¼þ£»
return true;
}
public boolean mouseUp(Event evt, int x, int y)
{ if (onced==1)
{ onced=2;
int wd=art.getWidth(this); //È¡µÃͼƬ¿í£»
int ht=art.getHeight(this);//È¡µÃͼƬ¸ß£»
GetPixels(art,0,0,wd,ht);//µ÷ÓûҶȱ任·½·¨£»
}
return true;
}
public void GetPixels(Image img,int x,int y,int w,int h)
{ int[]pixels=newint[w*h];
//¶¨ÒåÒ»¿éÄÚ´æ¿Õ¼ä£»
int gray;
PixelGrabber pg=new PixelGrabber(img,x,y,w,h,pixels,0,w);
try{pg.grabPixels();
}
catch(InterruptedExceptione)
{System.err.println("interrupted waiting for pixels!");
return;
}
for(intj=0;j> 16)&0xff)*0.3);
gray+=(int)(((pixels[w*j+i]>>8)&0xff)*0.59);
gray+=(int)(((pixels[w*j+i] )&0xff)*0.11);
//Óɺ죬ÂÌ£¬À¶ÖµµÃµ½»Ò¶ÈÖµ£»
pixels[w*j+i]=(255<<24)|(gray<<16)|(gray<<8)|gray;
}
}
Image pic=createImage(new MemoryImageSource(w,h,pixels,0,w));
Bufg.drawImage(pic,0,0,this); //ÏÔʾºÚ°×ͼƬ£»
onced=3;
repaint();
}
public void update(Graphics g)
{ if(xy==null)
{ xy=this.size();
Buf=createImage(xy.width,xy.height);
Bufg=Buf.getGraphics();
}
paint(g);//ÐÞ¸Äupdate·½·¨£¬±ÜÃâÉÁ˸£»
}
}
---- ½«Ô´³ÌÐò±àÒëºóµÃµ½tt4.classÎļþ£¬ÀûÓÃJava Applet Wizard×Ô¶¯Éú³ÉµÄ HTMLÎļþ(tt4.html) £¬¾Í¿ÉÔÚä¯ÀÀÆ÷ÖÐÐÀÉÍËüµÄЧ¹ûÁË¡£
---- °üº¬appletµÄHTMLÎļþÈçÏÂËùʾ£º
< html >
< head >
< title >¶Ô²ÊɫͼƬ½øÐлҶȱ任< /title >
< /head >
< body >
< p align="center" >< applet
code=tt4.class
name=tt4
width=250
height=188 >
< /applet >
< /body >
< /html >
---- ÆäÖвÎÊýwidth ºÍheight¾ÍÊÇ´ý±ä»»Í¼Æ¬µÄ¿íÓë¸ß¡£Èç¹ûÒª¸ü»»Í¼Æ¬£¬Ç뽫´ý»»Í¼Æ¬¸ÄÃûΪtest.jpg¡£
---- ÔËÐÐʱ£¬µ¥»÷Êó±ê×ó¼ü¾Í¿É½«²ÊɫͼƬ±ä»»³ÉºÚ°×ͼƬ£¬ÔÙµ¥»÷Ò»ÏÂÊó±ê×ó¼üÓÖ¿É»¹ÔΪ²ÊɫͼÏó¡£±¾³ÌÐòÔÚWindows95¡¢Visual J++1.1¡¢IE4.0 »·¾³ÏÂÔËÐÐͨ¹ý¡£
×îлظ´
·¢±íÆÀÂÛ