多媒体技术实验报告.doc
《多媒体技术实验报告.doc》由会员分享,可在线阅读,更多相关《多媒体技术实验报告.doc(24页珍藏版)》请在三一文库上搜索。
1、江苏科技大学多媒体技术考核报告(2017/2018学年第1学期)课程名称: 多 媒 体 技 术 指导教师: 景 国 良 实验地点: 东校区外训楼软件工程实验室 学生姓名: 谢卉 学生学号: 1477965899 院 系: 计算机学院 专 业: 计算机科学与技术专业 考核得分: 2017年 11 月 日实验一 多媒体图像文件转换一、实验目的1掌握多媒体静态图像的基本概念,技术和获取过程。2掌握多媒体图像文件基本格式种类。 3掌握不同图像文件的数据结构形式,了解不同格式图像文件的具体类型区别。4运用高级语言编程实现不同图像文件类型的相互转换。二、实验环境1、主流操作系统;2、高级语言编程环境。三、
2、实验内容1、编写程序实现主流图像文件格式之间的相互转换;2、至少要实现JPG、BMP、GIF、PNG图像文件之间的转换;3、编程语言不限;4、根据实验内容撰写对应的实验报告。四、设计方案ImageIO 类的静态方法可以执行许多常见的图像 I/O 操作。此包包含一些基本类和接口,有的用来描述图像文件内容(包括元数据和缩略图)(IIOImage);有的用来控制图像读取过程(ImageReader、ImageReadParam 和 ImageTypeSpecifier)和控制图像写入过程(ImageWriter 和 ImageWriteParam);还有的用来执行格式之间的代码转换 (ImageTr
3、anscoder) 和报告错误 (IIOException)。可处理图像格式有:jpg,BMP,bmp,JPG,wbmp,jpeg,png,PNG,JPEG,WBMP,GIF,gif。另外在加一些输入代码可实现简单的格式转换选择。五、实验代码import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import
4、java.util.Scanner;public class Main public static void main(String args) Scanner scan = new Scanner(System.in); System.out.println(请输入需要转换的格式jpg, bmp, png, gif:); File out = new File(/Users/14779/Desktop/1.jpg); /将图片写入ImageIO流 try BufferedImage img = ImageIO.read(out); /将图片写出到指定位置(复制图片) switch (scan
5、.next() casepng: casePNG: OutputStream ops = new FileOutputStream(new File(/Users/14779/Desktop/1(1).png); ImageIO.write(img, png, ops); System.out.println(转换完成!); break; casejpg: caseJPG: ops = new FileOutputStream(new File(/Users/14779/Desktop/1(1).jpg); ImageIO.write(img, jpg, ops); System.out.pr
6、intln(转换完成!); break; casebmp: caseBMP: ops = new FileOutputStream(new File(/Users/14779/Desktop/1(1).bmp); ImageIO.write(img, bmp, ops); System.out.println(转换完成!); break; caseGIF: casegif: ops = new FileOutputStream(new File(/Users/14779/Desktop/1(1).gif); ImageIO.write(img, gif, ops); System.out.pr
7、intln(转换完成!); break; default: System.out.println(请输入正确格式!); break; catch (IOException e) e.printStackTrace(); 实验截图六、实验过程中的问题及对应思考ImageIO是一个封装好的图像输入输出类, 使用 ImageIO 类的静态方法可以执行许多常见的图像 I/O 操作。我将图片路径事先写好放入程序里,可以通过键入转换格式来达到想要转换到的格式,为了避免键入出错,我将主程序写在try函数中。 实验二 多媒体图像文件压缩一、实验目的1、了解各种图像文件格式之间的存储方法和方式,了解其编码的组织
8、方式;2、掌握运用高级编程语言编写多媒体应用程序的方法;3、运用高级编程语言实现对多媒体图像文件的压缩的方法。二、实验环境1、主流操作系统;2、高级语言编程环境。三、实验内容1、使用高级编程语言编写良好的运行界面;2、运用高级编程语言编写核心代码实现对图像文件的压缩;3、了解压缩过程中的顺进和累进方法的运用提高压缩比;4、合理的考虑压缩算法压缩和解压的速度平衡;5、编程语言不限;6、根据实验内容撰写对应的实验报告。四、设计方案使用imagioIO的对图片的压缩处理来进行此项实验。五、实验代码package pany;import javax.imageio.ImageIO;import jav
9、a.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class Main public static void main(String args) CompressPicDemo mypic = new CompressPicDemo(); System.out.println(输入的图片大小: + mypic.getPicSize(C:Users14779Desktop2.jpg)/1024 + KB); pressPic(C:Users14779D
10、esktop, C:Users14779Desktop, 2.jpg, 2(2).jpg, 120, 120, false); class CompressPicDemo private File file = null; / 文件对象 private String inputDir; / 输入图路径 private String outputDir; / 输出图路径 private String inputFileName; / 输入图文件名 private String outputFileName; / 输出图文件名 private int outputWidth = 100; / 默认
11、输出图片宽 private int outputHeight = 100; / 默认输出图片高 private boolean proportion = true; / 是否等比缩放标记(默认为等比缩放) public CompressPicDemo() / 初始化变量 inputDir = ; outputDir = ; inputFileName = ; outputFileName = ; outputWidth = 100; outputHeight = 100; public void setInputDir(String inputDir) this.inputDir = inpu
12、tDir; public void setOutputDir(String outputDir) this.outputDir = outputDir; public void setInputFileName(String inputFileName) this.inputFileName = inputFileName; public void setOutputFileName(String outputFileName) this.outputFileName = outputFileName; public void setOutputWidth(int outputWidth) t
13、his.outputWidth = outputWidth; public void setOutputHeight(int outputHeight) this.outputHeight = outputHeight; public void setWidthAndHeight(int width, int height) this.outputWidth = width; this.outputHeight = height; /* * 获得图片大小 * 传入参数 String path :图片路径 */ public long getPicSize(String path) file =
14、 new File(path); return file.length(); / 图片处理 public String compressPic() try /获得源文件 file = new File(inputDir + inputFileName); if (!file.exists() return ; Image img = ImageIO.read(file);/ 判断图片格式是否正确 if (img.getWidth(null) = -1) System.out.println( cant read,retry! + ); return no; else int newWidth;
15、 int newHeight;/ 判断是否是等比缩放 if (this.proportion = true) / 为等比缩放计算输出的图片宽度及高度 double rate1 = (double) img.getWidth(null) / (double) outputWidth + 0.1; double rate2 = (double) img.getHeight(null) / (double) outputHeight + 0.1;/ 根据缩放比率大的进行缩放控制 double rate = rate1 rate2 ? rate1 : rate2; newWidth = (int) (
16、double) img.getWidth(null) / rate); newHeight = (int) (double) img.getHeight(null) / rate); else newWidth = img.getWidth(null); / 输出的图片宽度 newHeight = img.getHeight(null); / 输出的图片高度 BufferedImage tag = new BufferedImage(int) newWidth, (int) newHeight, BufferedImage.TYPE_INT_RGB);/* Image.SCALE_SMOOTH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体技术 实验 报告
链接地址:https://www.31doc.com/p-6078977.html