5 07, 2007
ͼÏñÓëÉùÒô(ת)
Java¶ÔͼÏñÓëÉùÒôýÌåµÄÖ§³ÖÕæ¿ÉνÊǼ¼¸ßÒ»³ï£¬ÏÔʾͼÏñÓë²¥·ÅÉùÒô¾ÍÈçͬÏÔʾһÐÐÎÄ
±¾Ò»Ñù·½±ã¡£Í¬Ê±£¬ÕýÓÉÓÚÔÚJava¶¯»ÖÐÁé»îµÄÔËÓÃͼÏñºÍÉùÒôýÌ壬²ÅʹµÃWebÒ³Ãæ¸ü
¾ß÷ÈÁ¦¡£
4.2.1 ͼÏñÎļþµÄÏÔʾ
ÕýÈçÉÏÒ»½ÚËù½éÉܵģ¬GraphicsÀàÖÐȷʵÌṩÁ˲»ÉÙ»æÖÆÍ¼Ðεķ½·¨£¬µ«Èç¹ûÓÃËüÃÇ
ÔÚappletÔËÐйý³ÌÖÐʵʱµØ»æÖÆÒ»·ù½Ï¸´ÔÓµÄͼÐΣ¨ÀýÈçÒ»Ìõ»îÆÃ¿É°®µÄС¹·£©£¬¾ÍºÃ±È
ÊÇÔÚÓø«Í·ºÍľ¿éÈ¥ÖÆÔ캽Ìì·É»ú¡£Òò´Ë£¬¶ÔÓÚ¸´ÔÓͼÐΣ¬´ó²¿·Ö¶¼ÊÂÏÈÓÃרÓõĻæÍ¼Èí
¼þ»æÖƺ㬻òÕßÊÇÓÃÆäËü½ØÈ¡Í¼ÏñµÄ¹¤¾ß£¨ÈçɨÃèÒÇ¡¢ÊÓЧ¿¨µÈ£©»ñȡͼÏñµÄÊý¾ÝÐÅÏ¢£¬
ÔÙ½«ËüÃǰ´Ò»¶¨µÄ¸ñʽ´æÈëͼÏñÎļþ¡£appletÔËÐÐʱ£¬Ö»ÒªÕÒµ½Í¼ÏñÎļþ´æÖüµÄλÖ㬽«
Ëü×°ÔØµ½ÄÚ´æÀȻºóÔÚÊʵ±µÄʱ»ú½«ËüÏÔʾÔÚÆÁÄ»ÉϾͿÉÒÔÁË¡£
1. ͼÏñÎļþµÄ×°ÔØ
JavaĿǰËùÖ§³ÖµÄͼÏñÎļþ¸ñʽֻÓÐÁ½ÖÖ£¬ËüÃÇ·Ö±ðÊÇGIFºÍJPEG¸ñʽ£¨´øÓÐ.GIF¡¢
.JPG¡¢.JPEGºó׺ÃûµÄÎļþ£©¡£Òò´ËÈôÊÇÆäËü¸ñʽµÄͼÏñÎļþ£¬¾ÍÏÈÒª½«ËüÃÇת»»ÎªÕâÁ½
ÖÖ¸ñʽ¡£ÄÜת»»Í¼Ïñ¸ñʽµÄÈí¼þÓкܶ࣬ÈçPhotoStylerµÈ¡£
AppletÀàÖÐÌṩÁËgetImage( )·½·¨ÓÃÀ´½«×¼±¸ºÃµÄͼÏñÎļþ×°ÔØµ½appletÖУ¬µ«ÎÒ
ÃDZØÐëÊ×ÏÈÖ¸Ã÷ͼÏñÎļþËù´æÖüµÄλÖá£ÓÉÓÚJavaÓïÑÔÊÇÃæÏòÍøÂçÓ¦Óõģ¬Òò´ËÎļþµÄ´æ
ÖüλÖò¢²»¾ÖÏÞÓÚ±¾µØ»úÆ÷µÄ´ÅÅÌĿ¼£¬¶ø´ó²¿·ÖÇé¿öÊÇÖ±½Ó´æÈ¡ÍøÂçÖÐWeb·þÎñÆ÷ÉϵÄ
ͼÏñÎļþ£¬Òò¶ø£¬Java²ÉÓÃURL£¨Universal Resource Location£¬Í³Ò»×ÊÔ´¶¨Î»Æ÷£©À´¶¨
λͼÏñÎļþµÄÍøÂçλÖá£Òò´Ë£¬JavaרÃÅÌṩÁËURLÀàÀ´¹ÜÀíURLÐÅÏ¢£¨¹ØÓÚ¸ÃÀàµÄÏêϸ½é
ÉܼûÏÂÒ»Õ£©¡£
±íʾһ¸öURLÐÅÏ¢¿É·ÖΪÁ½ÖÖÐÎʽ£º
Ò»ÖÖ³ÆÎª¾ø¶ÔURLÐÎʽ£¬ËüÖ¸Ã÷ÁËÍøÂç×ÊÔ´µÄȫ·¾¶Ãû¡£È磺
¾ø¶ÔURL£º¡°http://www.xyz.com/java/imgsample/images/m1.gif¡±
ÁíÒ»ÖÖ³ÆÎªÏà¶ÔURLÐÎʽ£¬·Ö±ðÓÉ»ù×¼URL£¨¼´base URL£©ÔÙ¼ÓÉÏÏà¶ÔÓÚ»ù×¼URLϵÄ
Ïà¶ÔURLÕâÁ½²¿·Ö×é³É£¬ÀýÈçÉÏÃæµÄÀý×ӿɱíʾΪ£º
»ù×¼URL£º¡°http://www.xyz.com/java/imgsample/¡±
Ïà¶ÔURL£º¡°images/m1.gif¡±
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔÀ´¿´Ò»ÏÂgetImage( )·½·¨µÄµ÷ÓøñʽÁË£º
Image getImage(URL url)
Image getImage(URL url, String name)
ÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬ÕâÁ½ÖÖµ÷ÓøñʽµÄ·µ»ØÖµ¶¼ÊÇImage¶ÔÏó¡£È·Êµ£¬JavaÌØ±ðÌṩÁË
java.awt.ImageÀàÀ´¹ÜÀíÓëͼÏñÎļþÓйصÄÐÅÏ¢£¬Òò´ËÖ´ÐÐÓëͼÏñÎļþÓйصIJÙ×÷ʱ²»Òª
ÍüÁËimportÕâ¸öÀà¡£getImage( )·½·¨µÄµÚÒ»ÖÖµ÷ÓøñʽֻÐèÒ»¸öURL¶ÔÏó×÷Ϊ²ÎÊý£¬Õâ±ã
ÊǾø¶ÔURL¡£¶øºóÒ»ÖÖ¸ñʽÔò´øÓÐÁ½¸ö²ÎÊý£¬µÚÒ»¸ö²ÎÊý¸ø³öµÄURL¶ÔÏóÊÇ»ù×¼URL£¬µÚ¶þ
¸ö²ÎÊýÊÇ×Ö·û´®ÀàÐÍ£¬ËüÃèÊöÁËÏà¶ÔÓÚ»ù×¼URLϵķ¾¶ºÍÎļþÃûÐÅÏ¢£¬Òò´ËÕâÁ½¸ö²ÎÊý
µÄÄÚÈÝ×ÛºÏÔÚÒ»Æð¾Í¹¹³ÉÁËÒ»¸ö¾ø¶ÔURL¡£ÀýÈ磬ÏÂÃæÁ½ÖÖд·¨Ëù·µ»ØµÄ½á¹ûÊÇÒ»ÑùµÄ£º
Image img=getImage(new URL("http://www.xyz.com/java/imgsample/images/m1.gif");
Image img=getImage(new URL("http://www.xyz.com/java/imgsample/"),"images/m1.gif");
±íÃæ¿´À´£¬ºÃÏóµÚÒ»ÖÖµ÷Óøñʽ½Ï·½±ãһЩ£¬µ«Êµ¼ÊÉϵڶþÖÖµ÷ÓøñʽÓõøüÆÕ±é£¬
ÒòΪÕâÖÖ¸ñʽ¸ü¾ßÁé»îÐÔ¡£ÔÀ´£¬AppletÀàÖÐÌṩÁËÁ½¸ö·½·¨À´°ïÖúÎÒÃÇ·½±ãµØ»ñÈ¡»ù×¼
URL¶ÔÏó£¬ËüÃǵĵ÷ÓøñʽÈçÏ£º
URL getDocumentBase( )
URL getCodeBase( )
ÆäÖÐgetDocumentBase( )·½·¨·µ»ØµÄ»ù×¼URL¶ÔÏó´ú±íÁ˰üº¬¸ÃappletµÄHTMLÎļþËù
´¦µÄĿ¼£¬ÀýÈç¸ÃÎļþ´æÖüÔÚ"http://www.xyz.com/java/imgsample/m1.html"ÖУ¬Ôò¸Ã
·½·¨¾Í·µ»Ø"http://www.xyz.com/java/imgsample/"·¾¶¡£¶øgetCodeBase( )·½·¨·µ»ØµÄ
»ù×¼URL¶ÔÏó´ú±íÁ˸ÃappletÎļþ(.classÎļþ)Ëù´¦µÄĿ¼¡£ËüÊǸù¾ÝHTMLÎļþµÄ"APPLET"
±ê¼ÇÖеÄCODEBASEÊôÐÔÖµ¼ÆËã³öÀ´µÄ£¬Èô¸ÃÊôÐÔûÓÐÉèÖã¬ÔòͬÑù·µ»Ø¸ÃHTMLÎļþËù´¦µÄ
Ŀ¼¡£
ºÃÁË£¬ÏÖÔÚÎÒÃÇÓ¦¸Ã¿ÉÒÔ¸ÐÊܵ½»ù×¼URLµÄÁé»îÐÔÁ˰ɡ£Ö»ÒªÎÒÃÇдÏÂÓï¾ä£º
Image img = getImage(getDocumentBase( ),"images/m1.gif");
ÄÇô¼´Ê¹Õû¸öimgsampleÄ¿Â¼ÒÆµ½±ð´¦Èκεط½£¬Ò²¿ÉÒÔÕýÈ·×°ÔØÍ¼ÏñÎļþ£¬¶ø²ÉÓÃ
¶ÔÓÚ¾ø¶ÔURLÐÎʽÔòÐèÒªÖØÐÂÐÞ¸Äapplet´úÂë²¢ÖØÐ±àÒë¡£
2. ͼÏñÎļþµÄÏÔʾ
getImage( )·½·¨½ö½öÊǽ«Í¼ÏñÎļþ´ÓÍøÂçÉÏ×°ÔØ½øÀ´£¬½»ÓÉImage¶ÔÏó¹ÜÀí¡£ÄÇÎÒÃÇ
ÔõÑù°ÑµÃµ½µÄImage¶ÔÏóÖеÄͼÏñÏÔʾÔÚÆÁÄ»ÉÏÄØ£¿ÕâÓÖÒª»Øµ½ÎÒÃǵÄÀÏÅóÓÑGraphicsÀà
ÖÐÀ´ÁË£¬ÒòΪGraphicsÀàÌṩÁËÒ»¸ödrawImage( )·½·¨£¬ËüÄÜÍê³É½«Image¶ÔÏóÖеÄͼÏñ
ÏÔʾÔÚÆÁÄ»µÄÌØ¶¨Î»ÖÃÉÏ£¬¾ÍÏóÏÔʾÎı¾Ò»Ñù·½±ã¡£drawImage( )·½·¨µÄµ÷ÓøñʽÈçÏ£º
boolean drawImage(Image img, int x, int y, ImageObserver observer)
ÆäÖÐimg²ÎÊý¾ÍÊÇÒªÏÔʾµÄImage¶ÔÏó¡£xºÍy²ÎÊýÊǸÃͼÏñ×óÉϽǵÄ×ø±êÖµ¡£observer
²ÎÊýÔòÊÇÒ»¸öImageObserver½Ó¿Ú£¨interface£©£¬ËüÓÃÀ´¸ú×ÙͼÏñÎļþ×°ÔØÊÇ·ñÒѾÍê³É
µÄÇé¿ö£¬Í¨³£ÎÒÃǶ¼½«¸Ã²ÎÊýÖÃΪthis£¬¼´´«µÝ±¾¶ÔÏóµÄÒýÓÃȥʵÏÖÕâ¸ö½Ó¿Ú¡£
³ýÁ˽«Í¼ÏñÎļþÕÕÔÑùÊä³öÒÔÍ⣬drawImage( )·½·¨µÄÁíÍâÒ»ÖÖµ÷Óøñʽ»¹ÄÜÖ¸¶¨Í¼
ÏñÏÔʾµÄÇøÓò´óС£º
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
ÕâÖÖ¸ñʽ±ÈµÚÒ»ÖÖ¸ñʽ¶àÁËÁ½¸ö²ÎÊýwidthºÍheight£¬¼´±íʾͼÏñÏÔʾµÄ¿í¶ÈºÍ¸ß¶È
¡£Èôʵ¼ÊͼÏñµÄ¿í¶ÈºÍ¸ß¶ÈÓëÕâÁ½¸ö²ÎÊýÖµ²»Ò»Ñùʱ£¬Javaϵͳ»á×Ô¶¯½«Ëü½øÐÐËõ·Å£¬ÒÔ
ÊʺÏÎÒÃÇËù¶¨µÄ¾ØÐÎÇøÓò¡£
ÓÐʱ£¬ÎÒÃÇΪÁ˲»Ê¹Í¼ÏñÒòËõ·Å¶ø±äÐÎÊ§Õæ£¬¿ÉÒÔ½«ÔͼµÄ¿íºÍ¸ß¾ù°´ÏàͬµÄ±ÈÀý½ø
ÐÐËõС»ò·Å´ó¡£ÄÇôÔõÑùÖªµÀÔͼµÄ´óÐ¡ÄØ£¿Ö»Ðèµ÷ÓÃImageÀàÖеÄÁ½¸ö·½·¨¾Í¿ÉÒÔ·Ö±ð
µÃµ½ÔͼµÄ¿í¶ÈºÍ¸ß¶È¡£ËüÃǵĵ÷ÓøñʽÈçÏ£º
int getWidth(ImageObserver observer)
int getHeight(ImageObserver observer)
ͬdrawImage( )·½·¨Ò»Ñù£¬ÎÒÃÇͨ³£ÓÃthis×÷ΪobserverµÄ²ÎÊýÖµ¡£
ÏÂÃæµÄ³ÌÐò¶Î¸ø³öÁËÒ»¸öÏÔʾͼÏñÎļþµÄÀý×Ó£¬ÆäÏÔʾ½á¹ûÈçͼ4£14Ëùʾ¡£
import java.awt.Graphics;
import java.awt.Image;
public class Images extends java.applet.Applet{
Image img;
public void init(){
img=getImage(getCodeBase(),"man.gif");
}
public void paint(Graphics g){
int w=img.getWidth(this);
int h=img.getHeight(this);
g.drawImage(img,20,10,this); //Ôͼ
g.drawImage(img,200,10,w/2,h/2,this); //ËõСһ°ë
g.drawImage(img,20,200,w*2,h/3,this); //¿í±âͼ
g.drawImage(img,350,10,w/2,h*2,this); //Êݸßͼ
}
}
¡¡
ͼ4£14 ÏÔʾͼÏñÎļþ
4.2.2 ÉùÒôÎļþµÄ²¥·Å
¶ÔÉùÒôýÌåµÄÖ±½ÓÖ§³Ö¿ÉÒÔ˵ÊÇJavaµÄÒ»´óÌØÉ«£¬ÓÈÆäÊÇÔÚ¶¯»ÖÐÅäÉÏÉùÒôЧ¹û£¬¾Í
¿ÉÒÔʹÈËÔÚÊÓ¾õÉϺÍÌý¾õÉϾùµÃµ½ÃÀµÄÏíÊÜ£¬ÄDzŽйýñ«¡£JavaÖв¥·ÅÉùÒôÎļþÓëÏÔʾͼ
ÏñÎļþÒ»Ñù·½±ã£¬Í¬ÑùÖ»ÐèÒªÏȽ«ÉùÒôÎļþ×°ÔØ½øÀ´£¬È»ºó²¥·Å¾ÍÐÐÁË¡£
JavaĿǰ֧³ÖµÄÉùÒôÎļþÖ»ÓÐÒ»ÖÖ¸ñʽ£¬ÄǾÍÊÇSUN¹«Ë¾µÄAU¸ñʽ£¨.AUÎļþ£©£¬Ò²³Æ
Ϊu-law¸ñʽ¡£ÓÉÓÚAU¸ñʽµÄÉùÒô½öÓÐ8KHzµÄ²ÉÑùƵÂÊÇÒ²»Ö§³ÖÁ¢ÌåÉùЧ¹û£¬ËùÒÔÒôÖʲ»
ËãÌ«ºÃ¡£Î¨Ò»µÄºÃ´¦¾ÍÊÇAUÉùÒôÎļþµÄ³ß´ç±ÈÆäËü¸ñʽС£¬ÓÐÀûÓÚÍøÉÏ´«Êä¡£Ò»°ã£¬ÎÒÃÇ
½ÏÊìϤµÄ´ó¶¼ÊÇWAV¸ñʽµÄÉùÒôÎļþ£¬Òò´Ë±ØÐëÏȽ«ËüÃÇת»»ÎªAU¸ñʽ(¿ÉÒÔÑ¡ÓÃGoldwave
Èí¼þÀ´½øÐÐÕâÖÖ¸ñʽת»»)¡£
ÉùÒôÎļþ×¼±¸ºÃÒԺ󣬾ͿÉÒÔ¿¼Âǽ«Ëü×°ÔØ½øÀ´²¢²¥·Å¡£ÔÚAppletÀàÖÐÌṩµÄplay( )
·½·¨¿ÉÒÔ½«ÉùÒôÎļþµÄ×°ÔØÓë²¥·ÅÒ»²¢Íê³É£¬Æäµ÷ÓøñʽÈçÏ£º
void play(URL url)
void play(URL url, String name)
¿É¼û£¬play( )·½·¨µÄµ÷ÓøñʽÓëgetImage( )·½·¨ÊÇÍêȫһÑùµÄ£¬Ò²²ÉÓÃURLÀ´¶¨Î»
ÉùÒôÎļþ¡£ÀýÈ磬ijÉùÒôÎļþaudio.auÓëappletÎļþ´æ·ÅÔÚͬһĿ¼Ï£¬¿ÉÒÔÕâÑùд£º
play(getCodeBase( ),"audio.au");
Ò»µ©play( )·½·¨×°ÔØÁ˸ÃÉùÒôÎļþ£¬¾ÍÁ¢¼´²¥·Å¡£Èç¹ûÕÒ²»µ½Ö¸¶¨URLϵÄÉùÒôÎļþ
£¬play( )·½·¨²»·µ»Ø³ö´íÐÅÏ¢£¬Ö»ÊÇÌý²»µ½ÏëÌýµÄÉùÒô¶øÒÑ¡£
ÓÉÓÚplay( )·½·¨Ö»Äܽ«ÉùÒô²¥·ÅÒ»±é£¬ÈôÏëÑ»·²¥·ÅijÉùÒô×÷Ϊ±³¾°ÒôÀÖ£¬¾ÍÐèÒª
Óõ½¹¦ÄܸüÇ¿´óµÄAudioClipÀ࣬ËüÄܸüÓÐЧµØ¹ÜÀíÉùÒôµÄ²¥·Å²Ù×÷¡£ÒòΪËü±»¶¨ÒåÔÚ
java.applet³ÌÐò°üÖУ¬ËùÒÔʹÓøÃÀàµÄ»°£¬²»ÒªÍüÁËÔÚ³ÌÐòÍ·²¿¼ÓÉÏ£º
import java.applet.AudioClip;
ΪÁ˵õ½AudioClip¶ÔÏó£¬ÎÒÃÇ¿ÉÒÔµ÷ÓÃAppletÀàÖеÄgetAudioClip( )·½·¨¡£ËüÄÜ×°
ÔØÖ¸¶¨URLµÄÉùÒôÎļþ£¬²¢·µ»ØÒ»¸öAudioClip¶ÔÏ󣬯äµ÷ÓøñʽÈçÏ£º
AudioClip getAudioClip(URL url)
AudioClip getAudioClip(URL url, String name)
µÃµ½AudioClip¶ÔÏóÒԺ󣬾ͿÉÒÔµ÷ÓÃAudioClipÀàÖÐËùÌṩµÄ¸÷ÖÖ·½·¨À´²Ù×÷ÆäÖеÄ
ÉùÒôÊý¾Ý£¬ÕâЩ·½·¨Èç±í4£4Ëùʾ¡£
Èç¹ûgetAudioClip( )·½·¨Ã»ÓÐÕÒµ½ËùÖ¸¶¨µÄÉùÒôÎļþ£¬¾Í»á·µ»ØnullÖµ¡£ËùÒÔ£¬ÔÚ
µ÷Óñí4£4ÖÐËùÁеķ½·¨Ç°£¬Ó¦¸ÃÏȼì²éһϵõ½µÄAudioClip¶ÔÏó²»ÊÇnull£¬ÒòΪÔÚnull
¶ÔÏóÉϵ÷ÓÃÉÏÊö·½·¨½«µ¼Ö³ö´í¡£
Èç¹ûÐèÒªµÄ»°£¬ÎÒÃÇ»¹¿ÉÒÔÔÚappletÖÐÍ¬Ê±×°ÔØ¼¸¸öÉùÒôÎļþÀ´Ò»Æð²¥·Å£¬µ½Ê±ºò£¬
ÕâЩÉùÒô½«»ìºÏÔÚÒ»Æð£¬¾ÍÏó¶þÖØ×àÒ»Ñù¡£ÁíÍ⻹ÓÐÒ»µãҪ˵Ã÷µÄÊÇ£¬Èç¹ûÎÒÃÇʹÓÃ
AudioClip¶ÔÏóµÄloop( )·½·¨À´Öظ´²¥·Å±³¾°ÒôÀÖʱ£¬Ç§Íò²»ÒªÍü¼ÇÔÚÊʵ±µÄʱºòµ÷ÓÃ
AudioClip¶ÔÏóµÄstop( )·½·¨À´½áÊø·ÅÒô£¬·ñÔòµÄ»°£¬¼´Ê¹Óû§À뿪ÕâÒ»WebÒ³Ãæ£¬¸ÃÉù
ÒôÒ²²»»áÍ£Ö¹£¬ÕâÎÞÒɽ«»áÈÇÄÕÓû§¡£Òò´Ë£¬Ò»°ãÎÒÃǶ¼ÔÚappletµÄstop( )·½·¨ÖÐÌíÉÏ
Í£Ö¹²¥·ÅµÄ´úÂë¡£
ÀýÈ磬ÏÂÃæÕâ¶Î³ÌÐò½«²¥·ÅÁ½¶ÎÉùÒô£¬Ò»¶ÎÊÇÁ¬Ðø²¥·ÅµÄ±³¾°ÒôÀÖ£¬ÁíÒ»¶ÎÊǽ²»°Â¼
Òô¡£
import java.applet.AudioClip;
public class Audios extends java.applet.Applet{
AudioClip bgmusic,speak;
public void init(){
bgmusic=getAudioClip(getDocumentBase(),"space.au");
speak=getAudioClip(getDocumentBase(),"intro.au");
}
public void start(){
if(bgmusic!=null)
bgmusic.loop();
if(speak!=null)
speak.play();
}
public void stop(){
if(bgmusic!=null)
bgmusic.stop(); //¹Ø±Õ±³¾°ÒôÀÖ£¬Çмǡ£
}
}
¡¡
×îлظ´
·¢±íÆÀÂÛ