




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原工业学院计算机工程系实 验 报 告姓名学号实验编号实验名称图片压缩课程名称多媒体技术教材多媒体技术应用1 实验目的做一个可以实现图像的压缩的工具。2 实验内容编程实现一个图像工具,可以打开原图像,在此基础上可以进行图像的压缩。3 实验步骤(附录源程序及效果图)(1) 首先用showImage(String imagename)方法创建一个图像监听器,并获得所选择的图像文件,然后创建图像缓冲区并显示。(2) 图像读至缓冲区,然后调用图片压缩方法对图像进行压缩。代码:Private Sub Command2_Click()On Error GoTo err1CommonDialog2.Action = 2Open CommonDialog2.FileName For Binary As #2Open CommonDialog1.FileName For Binary As #1Picture2.ClsDim bmpGeshi1 As Byte 。判断是不是BMP图片Dim bmpGeshi2 As ByteGet #1, 1, bmpGeshi1Get #1, 2, bmpGeshi2If bmpGeshi1 = 66 And bmpGeshi2 = 77 Then Picture2.Print BMPElse Picture2.Print 格式错误 Close #1 Exit SubEnd IfDim geShi As Byte 。判断BMP图片位数Get #1, &H1C + 1, geShiIf geShi = 24 Then Picture2.Print 24位Else Picture2.Print 文件是; geShi; 位格式不支持,请打开24位格式的BMP Close #1 Exit SubEnd IfPicture3.Picture = LoadPicture()Dim Kuan As Long 。找到图片高、宽Dim Gao As LongGet #1, &H12 + 1, KuanGet #1, &H16 + 1, GaoPicture2.Print 图像大小:宽; Kuan; 高; GaoDim BS As StringBS = B8Put #2, 1, BSPut #2, 2, 8Put #2, 3, KuanPut #2, 7, Gaoput #2,11,Picture3.Picture = LoadPicture()Dim pos As Long 文件中点的指针Dim cha As Integer 行末尾填充的字节数cha = Abs(Kuan * 3) Mod 4 - 4) Mod 4Picture2.Print 行末尾多余的字节; chapos = &H36 + 1Dim Pos8 As LongPos8 = 11Dim IX As Long 用于描出点的坐标Dim IY As Long 用于描出点的坐标Dim yanseRed As Byte 存红色的值Dim yanseGreen As Byte 存绿色的值Dim yanseBlue As Byte 存蓝色的值Dim endYanse As ByteDim endR As ByteDim endG As ByteDim endB As ByteDim yanseRed8 As Byte 存红色的值Dim yanseGreen8 As Byte 存绿色的值Dim yanseBlue8 As Byte 存蓝色的值For IY = Gao - 1 To 0 Step -1 y行 。描点For IX = 0 To Kuan - 1 x列 Get #1, pos, yanseBlue 得到颜色 Get #1, pos + 1, yanseGreen 得到颜色 Get #1, pos + 2, yanseRed 得到颜色 Picture1.PSet (IX, IY), RGB(yanseRed, yanseGreen, yanseBlue)Select Case yanseRedCase 0 To 41endR = 0Case 42 To 84endR = 1Case 85 To 127endR = 2Case 128 To 170endR = 3Case 171 To 213endR = 4Case 214 To 255endR = 5End SelectSelect Case yanseGreenCase 0 To 41endG = 0Case 42 To 84endG = 1Case 85 To 127endG = 2Case 128 To 170endG = 3Case 171 To 213endG = 4Case 214 To 255endG = 5End SelectSelect Case yanseBlueCase 0 To 41endB = 0Case 42 To 84endB = 1Case 85 To 127endB = 2Case 128 To 170endB = 3Case 171 To 213endB = 4Case 214 To 255endB = 5End SelectPicture3.PSet (IX, IY), RGB(endR * 42, endG * 42, endB * 42)endYanse = endR * 6 * 6 + endG * 6 + endBPut #2, Pos8, endYanse pos = pos + 3 开始读下一个像素 Pos8 = Pos8 + 1Next IX pos = pos + cha 描到了行末尾,则跳过不要的字节 Pos8 = Pos8 + chaNext IYClose #1 正常时关闭文件Close #2Exit Suberr1: 错误处理If Err = 32755 Then Exit Sub 打开文件对话框点取消时,发生32755错误错误Picture2.Print 发生错误; Err=; ErrClose #1 有错误时关闭文件Close #2Exit SubEnd SubPrivate Sub Command1_Click()On Error GoTo aaaPicture2.ClsCommonDialog1.Action = 1Picture1.Picture = LoadPicture()Picture1.Picture = LoadPicture(CommonDialog1.FileName)Command2.Enabled = TrueExit Subaaa:If Err = 32755 Then Exit Sub 打开文件对话框点取消时,发生32755错误错误Picture2.Print 图片格式不支持Command2.Enabled = FalseExit SubEnd SubPrivate Sub Command3_Click()On Error GoTo err1Picture2.ClsCommonDialog3.Action = 1Open CommonDialog3.FileName For Binary As #3Picture2.ClsDim bmp8Geshi1 As Byte 。判断是不是BMP8图片Dim bmp8Geshi2 As ByteGet #3, 1, bmp8Geshi1Get #3, 2, bmp8Geshi2If bmp8Geshi1 = &H42 And bmp8Geshi2 = &H38 Then Picture2.Print BMP8Else Picture2.Print 格式错误 Close #1 Exit SubEnd IfPicture3.Picture = LoadPicture()Dim Kuan8 As Long 。找到图片高、宽Dim Gao8 As LongGet #3, 3, Kuan8Get #3, 7, Gao8Picture2.Print 8位图像大小:宽; Kuan8; 高; Gao8Dim cha As Integercha = Abs(Kuan8 * 3) Mod 4 - 4) Mod 4Dim IX As Long 用于描出点的坐标Dim IY As Long 用于描出点的坐标Dim yanseRed8 As Byte 存红色的值Dim yanseGreen8 As Byte 存绿色的值Dim yanseBlue8 As Byte 存蓝色的值Dim Pos8 As LongDim endYanse8 As BytePos8 = 11For IY = Gao8 - 1 To 0 Step -1 y行 。描点For IX = 0 To Kuan8 - 1 x列 Get #3, Pos8, endYanse8 得到颜色 yanseRed8 = Fix(endYanse8 / 6 / 6) yanseGreen8 = Fix(endYanse8) / 6) Mod 6 yanseBlue8 = endYanse8 Mod 6 Picture3.PSet (IX, IY), RGB(yanseRed8 * 42, yanseGreen8 * 42, yanseBlue8 * 42) Pos8 = Pos8 + 1Next IX Pos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 薪酬绩效管理培训
- 魔幻消气屋课件
- 巨人创意画课件
- 自然拼读字母课件
- 表情包转盘课件
- 新媒体案例培训
- 朱子治家培训讲座
- 课件最美的眼神
- 课件最后一页内容
- 课件智能生成
- 中学校长在2025年秋季学期开学典礼上致辞:在时光里耕耘在成长中绽放
- 2025年新形势下新型储能发展趋势分析报告
- 2025年医疗器械注册与备案管理办法试题(附答案)
- 小学道德与法治五年级上册《烟酒有危害》教学课件
- 2025年登革热防控试题(附答案)
- 2025-2026学年人教版小学数学四年级上册教学计划及进度表
- 2025年承包学校食堂餐饮废弃物处理合同
- 霍乱培训课件下载
- 2024年安徽大学招聘真题(行政管理岗)
- 部编版道德与法治小学四年级上册期末复习专练试题及答案(全套)
- 2025年发展对象培训班考试题库并带答案
评论
0/150
提交评论