当前位置:文档之家› 多媒体编程

多媒体编程

多媒体编程
图像
(1)图像的加载 对于Application来说,要加载图像,需要使用类 Toolkit 提供的方法 getImage(),该方法的定义形 式有下面两种: Image getImage(URL url); Image getImage(String filename) Image imageObj=Toolkit.getDefaultToolkit().getImage( “fileObj.gif”); Image imageObj=getToolkit().getImage(“fileObj.gif”);
图像
对于 Apple 来说,类 Applet 中提供了 getImage() ,可以 直接载入图像,方法格式如下: Image getImage(URL url) Image getImage(URL url,String name); 如果图像文件和Applet位于同一个目录下面,就可以 通过getCodeBase()方法获得地址;若图像文件和包含 Applet的HTML文件位于同一个目录下面,可以使用 getDocumentBase()获得基地址。
图像的生成
(3) 图像的生成 要生成图像,就需要实现ImageProducer接口,java.awt.image包提供 的 FilteredImageSource 和 MemoryImageSource 类 实 现 了 ImageProducer 接口,下面介绍这两个类中提供的有关图像生成 方法。 FilteredImageSource(ImageProducer origObj,ImageFilter imgObj); FilteredImageSource 通过一个已经载入的图像和图像过滤器生成一 幅新的图像,当生成ImageProducer对象后,调用createImage()方 法生成图像。 其 实 , 在 图 像 的 处 理 中 介 绍 的 例 子 就 是 一 个 通 过 FilteredImageSource类生成新图像的例子。 MemoryImageSource(int width,int height,int pixel[],int offset,int scanLineWidth); MemoryImageSource类使用一个数组来得到图像中每个像素点的值, 在上面的方法中,width和height指定图像的宽和高,pixel中包括 每个像素点的值,画处理
所谓动画,就是让多幅图片一定时间循环显示,只是 肉眼看起来像是动画。计算机动画一般每秒显示10到 20帧图像。 在程序中调用了sleep()方法,它是Thread类中定义的 一个类方法(即含有Static关键字的方法),调用它能 使正在运行着的程序暂停指定的毫秒数。如果不调用 Sleep()方法,Applet就会全速运行,必将导致动画的 换帧速度太快,用户就来不及看清动画的内容,得到 的只有乱闪的画面。因而,动画的制作过程中需要不 断地调整每帧之间地时延数值,使其达到满意的播放 速度。程序中try和catch是为了让我们能完善地处理 Java程序运行时产生的错误,也就是异常处理。
数字音频
目前Java支持的声音格式主要有AIFF、AU、WAV、 MIDI、RMF等,音质可为8位或6位的单声道和立体声, 采样频率从8kHz到48kHz,当然音频越好占用的资源 就越多,网络下载时间越长。因此对于面向网络的 Applet而言,必须考虑文件的大小,在音质和文件大 小之间采取折衷办法。 Java提供了两种播放声音的方式,一种是通过Applet 类的play方法,一种是通过AudioClip接口中的方法播 放。 void play(URL url) void play(URL url,String name); 如声音文件 audio.mid 和 applet 文件存放在同一目录下, 就可以这样表达: play(getCodeBase(),"audio.mid");
图像的处理
(2) 图像的处理 java.awt.image提供了图像过滤器对图像进行处理,包括 ImageFilter和它的两个子类CropImageFilter与 RGBImageFilter。ImageFilter类不对图像数据进行处 理,CropImageFilter用于提取图像中指定矩形区域的 图像,而RGBImageFilter用于对图像的色彩进行处理, 该类是抽象类。 ImageFilter filter=new CropImageFilter(x1,y1,w,h); ImageProducer producer=new FilteredImageSource(img.getSource(),filter); Image img=createImage(producer);
数字音频
play()方法只能将声音播放一次,若想循环播放作为 背景音乐,就需要功能更为强大的AudioClip类,它能 更有效地管理声音的播放操作。AudioClip类包含在 java.applet类库中,使用该类时,程序一定引入import java.applet.AudioClip。 AudiClip getAudioClip(URL url); AudiClip getAudioClip(URL url,String name); 创建了AudioClip对象后,声音文件就可以装载了,可 调用它的方法处理声音文件。如果该方法找不到指定 的声音文件,将返回 null ,此时不能引用所创建的对 象。AudioClip只有3中方法: void play() 播放一遍 void loop() 连续播放 void stop() 停止播放
小结
本章主要介绍了Applet程序的设计方法。 介绍Applet的基本工作原理、Applet和 HTML文件的配合、Java图形用户界面 的标准组件、组件布局管理、Java事件 处理机制、窗口、菜单和对话框的设计、 Java的图形处理以及多媒体编程。 难点:布局管理和事件处理机制
相关主题