多媒体技术实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏科技大学
多媒体技术考核报告(2017/2018学年第1学期)
课程名称:多媒体技术
指导教师:***
实验地点:东校区外训楼软件工程实验室
学生姓名:**
学生学号:**********
院系:计算机学院
专业:计算机科学与技术专业
考核得分:
2017年11月日
实验一多媒体图像文件转换
一、实验目的
1.掌握多媒体静态图像的基本概念,技术和获取过程。
2.掌握多媒体图像文件基本格式种类。
3.掌握不同图像文件的数据结构形式,了解不同格式图像文件的具体类型区别。
4.运用高级语言编程实现不同图像文件类型的相互转换。
二、实验环境
1、主流操作系统;
2、高级语言编程环境。
三、实验内容
1、编写程序实现主流图像文件格式之间的相互转换;
2、至少要实现JPG、BMP、GIF、PNG图像文件之间的转换;
3、编程语言不限;
4、根据实验内容撰写对应的实验报告。
四、设计方案
ImageIO 类的静态方法可以执行许多常见的图像 I/O 操作。
此包包含一些基本类和接口,有的用来描述图像文件内容(包括元数据和缩略图)(IIOImage);有的用来控制图像读取过程(ImageReader、ImageReadParam 和 ImageTypeSpecifier)和控制图像写入过程(ImageWriter 和 ImageWriteParam);还有的用来执行格式之间的代码转换(ImageTranscoder) 和报告错误 (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 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.next()){
case"png":
case"PNG":
OutputStream ops = new FileOutputStream(new
File("/Users/14779/Desktop/1(1).png"));
ImageIO.write(img, "png", ops);
System.out.println("转换完成!");
break;
case"jpg":
case"JPG":
ops = new FileOutputStream(new File("/Users/14779/Desktop/1(1).jpg")); ImageIO.write(img, "jpg", ops);
System.out.println("转换完成!");
break;
case"bmp":
case"BMP":
ops = new FileOutputStream(new File("/Users/14779/Desktop/1(1).bmp")); ImageIO.write(img, "bmp", ops);
System.out.println("转换完成!");
break;
case"GIF":
case"gif":
ops = new FileOutputStream(new File("/Users/14779/Desktop/1(1).gif")); ImageIO.write(img, "gif", ops);
System.out.println("转换完成!");
break;
default:
System.out.println("请输入正确格式!");
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
实验截图
六、实验过程中的问题及对应思考
ImageIO是一个封装好的图像输入输出类, 使用ImageIO 类的静态方法可以执行许多常见的图像I/O 操作。我将图片路径事先写好放入程序里,可以通过键入转换格式来达到想要转换到的格式,为了避免键入出错,我将主程序写在try函数中。