本文实现了两个效果:
第一种,同心圆效果图:
/** *程序要求:新建一个600*600像素的应用程序窗口,并在窗口中绘制5个不同颜色的同心圆, *所有圆心都是屏幕的中心点,相邻两个圆直接的半径相差50像素 *效果图如下图所示(颜色随机设置),源程序保存为Ex7_1.java。 *作者:wwj *日期:2012/4/25 *功能:显示一个有5个不同颜色的同心圆 **/ import javax.swing.*; import java.awt.*; import java.awt.Color; public class Ex7_1 extends JFrame { int red,green,blue; Color color; public Ex7_1() { super("一个有5个不同颜色的同心圆"); //显示窗口名称 setSize(600,600); //设置窗口大小 setVisible(true); //设置为可见 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭动作 } public void paint(Graphics g) { //第一个圆 red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); color=new Color(red,green,blue); g.setColor(color); g.fillOval(175,175,250,250); //第二个圆 red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); color=new Color(red,green,blue); g.setColor(color); g.fillOval(200,200,200,200); //第三个圆 red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); color=new Color(red,green,blue); g.setColor(color); g.fillOval(225,225,150,150); //第四个圆 red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); color=new Color(red,green,blue); g.setColor(color); g.fillOval(250,250,100,100); //第五个圆 red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); color=new Color(red,green,blue); g.setColor(color); g.fillOval(275,275,50,50); } public static void main(String[] args) { Ex7_1 e = new Ex7_1(); } }
第二种,播放音乐和切换图片的小程序效果图:
/** *程序要求:编写一个Applet的小程序,准备5幅图片和三个音乐文件,绘制到Applet中, *并增加几个按钮,控制图片的切换、放大、缩小和音乐文件的播放。 *作者:wwj *日期:2012/4/29 *参考:neicole *功能:能进行图片和歌曲的选择变换的applet小程序 **/ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.applet.AudioClip; public class Ex7_2 extends Applet implements ActionListener,ItemListener { //创建两个面板 JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); //声音对象 AudioClip[] sound=new AudioClip[3]; int playingSong=0; //切换图片的按钮 JButton lastPic=new JButton("上一张"); JButton setLarge=new JButton("放大"); JButton setLittle=new JButton("缩小"); JButton nextPic=new JButton("下一张"); //切换歌曲的按钮 JButton lastSound=new JButton("上一首"); JButton play=new JButton("播放"); JButton loop=new JButton("连续"); JButton stop=new JButton("停止"); JButton nextSound=new JButton("下一首"); //曲目下拉列表 JComboBox xx; String names[]={ "曲目1.wav","曲目2.wav","曲目3.wav"}; //创建画布对象 MyCanvasl showPhotos; public void init() { //窗口布局 this.setLayout(new BorderLayout()); //为图片控制按钮注册监听器 lastPic.addActionListener(this); setLarge.addActionListener(this); setLittle.addActionListener(this); nextPic.addActionListener(this); //向面板p1添加组件 p1.add(lastPic); p1.add(setLarge); p1.add(setLittle); p1.add(nextPic); p1.repaint(); //实例化下拉列表对象 xx = new JComboBox(names); xx.addItemListener(this); //为控制播放音乐按钮注册监听器 lastSound.addActionListener(this); play.addActionListener(this); loop.addActionListener(this); stop.addActionListener(this); nextSound.addActionListener(this); for(int i=0;i<3;i++) { sound[i]=getAudioClip(getCodeBase(),"music/"+"曲目" +Integer.toString(i+1)+".wav"); } //向面板p2添加组件 p2.add(xx); p2.add(lastSound); p2.add(play); p2.add(loop); p2.add(stop); p2.add(nextSound); p2.repaint(); showPhotos = new MyCanvasl(); p3.add(showPhotos); p3.repaint(); //把面板p1和p2分别布置到窗口的北部和南部 add(p1,BorderLayout.NORTH); add(p2,BorderLayout.SOUTH); add(p3,BorderLayout.CENTER); this.repaint(); } //按钮的事件处理 public void actionPerformed(ActionEvent e) { if(e.getSource() == lastPic){ showPhotos.changePhotoShow('P'); } else if(e.getSource() == nextPic){ showPhotos.changePhotoShow('N'); } else if(e.getSource() == setLarge){ showPhotos.changePhotoSize('B'); } else if(e.getSource() == setLittle){ showPhotos.changePhotoSize('S'); } else if(e.getSource()==lastSound){ //上一首 sound[playingSong].stop(); playingSong=(playingSong-1+3)%3; xx.setSelectedIndex(playingSong); sound[playingSong].play(); } else if(e.getSource()==play){ //按下播放按钮 sound[playingSong].play(); } else if(e.getSource()==loop){ //按下循环按钮 sound[playingSong].loop(); } else if(e.getSource()==stop){ //按下停止按钮 sound[playingSong].stop(); } else{ //下一首 sound[playingSong].stop(); playingSong=(playingSong+1)%3; xx.setSelectedIndex(playingSong); sound[playingSong].play(); } } //下拉列表的事件处理 public void itemStateChanged(ItemEvent e) { sound[playingSong].stop(); sound[playingSong]=getAudioClip(getCodeBase(),"music/"+xx.getSelectedItem()); } class MyCanvasl extends Canvas { public Image[] img=new Image[5]; int MaxWidth = 600; int MaxHeight = 500; int nowImageIndex = 0; int coordinateX = 0; int coordinateY = 0; int currentWidth = MaxWidth; int currentHeight = MaxHeight; MyCanvasl(){ setSize(MaxWidth,MaxHeight); //获取当前目录下的图片 for(int i=0;i<5;i++){ img[i]=getImage(getCodeBase(),"image/"+Integer.toString(i+1)+".jpg"); } } private void changePhotoIndex(int index){ nowImageIndex = index; changePhotoSize('M'); } public void changePhotoShow(char command){ if('P' == command){ changePhotoIndex((nowImageIndex + 5 - 1 ) % 5); } else if('N' == command){ changePhotoIndex((nowImageIndex + 1) % 5); } } public void changePhotoSize(char command){ if ('M' == command){ currentWidth = MaxWidth; currentHeight = MaxHeight; } else if ('B' == command){ if(MaxWidth >= (currentWidth + 100) && MaxHeight >= (currentHeight + 100)){ currentWidth += 100; currentHeight += 100; } } else if('S' == command){ if((0 < (currentWidth - 100)) && (0 < (currentHeight - 100))){ currentWidth = currentWidth - 100; currentHeight = currentHeight - 100; } } coordinateX = (MaxWidth - currentWidth) / 2; coordinateY = (MaxHeight - currentHeight) / 2; repaint(); } //paint方法用来在窗口显示图片 public void paint(Graphics g){ g.drawImage(img[nowImageIndex],coordinateX,coordinateY,currentWidth,currentHeight,this); } } }
以上就是关于Java的图形设计以及多媒体处理的全部内容,希望对大家的学习有所帮助。
数据传输率:采样频率(Hz)×量化位数(bit)×声道数,单位为b/s 声音信号数据量:数据传输率×持续时间/8 音频容量的计算公式:存储量=采样时间(s) 采样频率(Hz) 量化位数(位) *声道数/8/1024(kb) 图片容量的计算公式:存储量=水平像素垂直像素颜色位数/8/1024(kb) 若提示为X位或X位色,则颜色位数就是X,若提示为X色,那么颜色位数为。 视频容量的计算公式:存储量=
多媒体 HTML5 前的多媒体需要借助第三方插件,例如 Flash,但是 HTML5 将网页中的多媒体带入了新的一章。 基本用法 // 音频 // 指定资源类型可以帮助浏览器更快的定位解码 <audio autobuffer autoloop loop controls> <source src="/media/audio.mp3" type="audio/mpeg"> <source s
介绍 MPlayer被评为Linux下的最佳媒体播放工具,又成功地移植到Windows下。它能播放几乎所有流行的音频和视频格式。 MPlayer能播放几乎所有流行的音频 和视频格式,相对其它播放器来说,资源占用非常少,不需要任何系统解码器就可以播放各种媒体格式。 http://www.mplayerhq.hu/ 安装 直接 apt 安装即可: sudo apt-get install mplaye
选择安装 deadbeef 的首要原因,是它支持 DSD 格式! 介绍 http://deadbeef.sourceforge.net/ 安装 打开下载页面: http://deadbeef.sourceforge.net/download.html 找到 DeaDBeeF deb package amd64 下载对应的 deb 文件,下载完成后直接安装即可。 配置 打开 “编辑” —> “偏好设
介绍 http://audacious-media-player.org/ 可惜,没有找到播放 DSD 格式的方法… 安装 audacious 默认存在于 ubuntu/linux mint 的仓库中,不过版本不是最新的,因此为了安装到最新的版本,需要添加下面的 PPA ,然后再安装。 sudo add-apt-repository ppa:nilarimogard/webupd8 sudo ap
JavaScript导航器对象包含一个名为plugins的子对象。 此对象是一个数组,浏览器上安装的每个插件都有一个条目。 navigator.plugins对象仅由Netscape,Firefox和Mozilla支持。 例子 (Example) 以下示例显示如何列出浏览器中安装的所有插件。 <html> <head> <title>List of Plug-Ins</tit