5 07, 2007

ͼÏñÓëÉùÒô(ת)

ÓëÆäËüÓïÑÔÏà±È½Ï£¬Èç¹û˵Java¶ÔͼÐκÍÎı¾Ã½ÌåµÄÖ§³Ö²¢²»Õ¼Ã÷ÏÔÓÅÊÆµÄ»°£¬ÄÇô
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(); //¹Ø±Õ±³¾°ÒôÀÖ£¬Çмǡ£

}

}
¡¡
×îлظ´
·¢±íÆÀÂÛ













Bold Italic Link