导航:首页 > 文件处理 > caps压缩

caps压缩

发布时间:2022-08-31 10:19:24

㈠ 解压缩文件密码

我也这样的强矿,WINRAR的加密技术做的非常好,基本上长一点的密码就很难破解。楼主你是不是压缩了两次?压缩了两次的话密码就不管用了。还有就是压缩的时候输错了而你没注意。

㈡ 求助WIN7使用caps lock键延时的问题!

windows7的最大优点就是集成很多的驱动,而且很多东西都是可以使用的。但是,任何事情都是双刃剑,有利有弊的。这个优点的缺点就是驱动和压缩包太多了,导致互相冲突……好了,后面不用说了,你懂的!
不知道你的本本是什么牌子,但是最起码肯定是键位的设置和windows7的驱动压缩冲突了。解决方法,你到网上找到简化纯净版的系统,重新安装。你的烦恼马上就没有了。
很简单,不用很多字就能说明,希望能帮到你。谢谢

㈢ PS常用的图像类型有哪些(至少四种)

1、PSD 格式是Photshop软件的专用格式,能支持网络,通道,路径,剪贴路径和图层等所有Photoshop的功能,还能支持Photoshop使用的任何颜色深度和图像模式。

(3)caps压缩扩展阅读:

文件操作使用快捷键

新建图形文件: 【Ctrl】+【N】 默认设置创建新文件 :【Ctrl】+【Alt】+【N】

打开已有的图像: 【Ctrl】+【O】 打开为:【Ctrl】+【Alt】+【O】

新建图层:【Ctrl】+【Shift】+【N】 另存为 :【Ctrl】+【Shift】+【S】

关闭当前图像 :【Ctrl】+【W】 显示的“预置”对话框 :【Alt】+【Ctrl】+【K】

存储副本 :【Ctrl】+【Alt】+【S】 保存当前图像 :【Ctrl】+【S】

应用当前所选效果并使参数可调 :【A】 页面设置【Ctrl】+【Shift】+【P】

打开预置对话框 :【Ctrl】+【K】 设置透明区域与色域 :【Ctrl】+【4】

设置“常规”选项: 【Ctrl】+【1】 设置参考线与网格 :【Ctrl】+【6】

打印 :【Ctrl】+【P】 设置存储文件:【Ctrl】+【2】

设置显示和光标 :【Ctrl】+【3】 斜面和浮雕效果:【Ctrl】+【5】

内发光效果 :【Ctrl】+【4】 外发光效果: 【Ctrl】+【3】

设置单位与标尺 :【Ctrl】+【5】 通道选择【ctrl+1.2.3.4】

图像调整使用快捷键

自由变换:【ctrl】+【T】 再次变换:【Ctrl】+【Shift】+【Alt】+【T】

图像大小:【Ctrl】+【Alt】+【I】 色阶:【Ctrl】+【L】

画布大小:【Ctrl】+【Alt】+【C】 色相/饱和度:【Ctrl】+【U】

曲线:【Ctrl】+【M】 黑白:【Alt】+【Shift】+【Ctrl】+【B】

去色:【Shift】+【Ctrl】+【U】 反相:【Ctrl】+【I】

色彩平衡:【Ctrl】+【B】

编辑文字使用快捷键

移动图像的文字:【Ctrl】 + 选中文字 选择文字时显示/隐藏:【Ctrl】 + 【H】

选择从插入点到鼠标点的文字:【向上键】+ 点击鼠标 使用/不使用下划线: 【向上键】+ 【Ctrl】 +【 U】

使用/不使用中间线:【向上键】+ 【Ctrl】 +【 /】 使用/不使用大写英文:【向上键】+【 Ctrl】 +【 K】

使用/不使用Caps:【向上键】+【Ctrl】 +【 H】

图层操作使用快捷键

正常 :【Shift】+【Alt】+【N】 正片叠底: 【Shift】+【Alt】+【M】

循环选择混合模式 :【Shift】+【-】或【+】 溶解 :【Shift】+【Alt】+【I】

颜色减淡 :【Shift】+【Alt】+【D】 阈值(位图模式):【Shift】+【Alt】+【L】

背后 :【Shift】+【Alt】+【Q】 颜色加深 :【Shift】+【Alt】+【B】

强行关闭当前话框:【Ctrl】+【Alt】+【W】 清除 :【Shift】+【Alt】+【R】

饱和度: 【Shift】+【Alt】+【T】 无限返回上一步:【Ctrl】+【Alt】+【Z】

屏幕: 【Shift】+【Alt】+【S】 重新选择:【Ctrl】+【Shift】+【D】

修改字距:【Alt】+【←/→】 叠加: 【Shift】+【Alt】+【O】

变亮:【Shift】+【Alt】+【G】 修改行距:【Alt】+【↑/↓】

柔光: 【Shift】+【Alt】+【F】 差值: 【Shift】+【Alt】+【E】

粘贴:【Ctrl】+【Alt】+【V】 强光:【Shift】+【Alt】+【H】

排除:【Shift】+【Alt】+【X】 全部选取:【Ctrl】+【A】

变暗: 【Shift】+【Alt】+【K】 色相: 【Shift】+【Alt】+【U】

路径变选区 数字键盘的:【Enter】 变亮:【Shift】+【Alt】+【G】

颜色: 【Shift】+【Alt】+【C】 羽化选择:【Ctrl】+【Alt】+【D】

光度: 【Shift】+【Alt】+【Y】 复制当前图层:【Ctrl】+【J】

载入选区: 【Ctrl】+点按图层、路径 取消选择:【Ctrl】+【D】

反向选择:【Ctrl】+【Shift】+【I】

参考资料来源:网络-PS

㈣ 如何破解压缩文件密码

工具材料

arpr破解版软件

方法如下

1、首先在电脑下载安装“arpr破解版”软件,然后打开软件。

㈤ 实况足球8去哪下

http://www.hellobbs.cn/download/game/
实况足球8国际中文解说版.exe
这个地址用迅雷下,解压密码taizeigg,你自己应该会安装吧!!!
如果进去被弹出用这个办法就好:
打开3D-ANALYZE1.69
点击第二个SELECT选择你的实况8安装目录里的WE8.EXE
在右边的选项force
SW
TnL及emulate
HW
TnL
caps和emulate
other
DX8.1
caps打上勾勾!
最后点下边的RUN就可以了!
解压密码是taizeigg
如果这样还不能玩,那就说明是你电脑的问题了,而不是游戏程序的问题了

㈥ 求WORD使用指南

一、 基础知识
1、概述:
WORD 是一个文字处理软件,主要用于文字的编辑与排版,是OFFICE办公软件包中的其中一个最适用的办公软件之一。
2、动与退出:
启动:双击桌面上的WORD 图标(或点击“开始”菜单——指向“程序”——点击“WORD ”图标)
退出:点击“文件”菜单点击“退出”(或单点击WORD窗口标题栏最右端的“关闭”按钮)
3、 界面(即窗口)组成:
(1)标题栏:图标,名称,最小化,最大化/还原,关闭按钮
(2)菜单栏:WORD的所有操作都可用菜单命令实现
(3)工具栏:包括常用工具栏和格式工具栏(默认为放在菜单栏的下面)
A工具移动:把鼠标放在工具栏的最左边会出现移动符号,按住鼠标左键移动到所需位置再松开鼠标即可。
B工具变形:当工具栏放在文本区内时,把鼠标放在工具栏的最边界处会出现调整符号,按住鼠标左键顺着箭头的方向移动即可。
C显示/隐藏工具栏:点击“视图”菜单——点击“工具栏”——选择所需的工具栏。
(4)文本区:(又称为编辑区或工作窗口)用来输入文本——编辑文档及对象
(5)标 尺:包括水平标尽和垂直标尺(点击“视图”——“标尺”可显示/隐藏标尺)
(6)滚动条:包括水平滚动条和垂直滚动条,用来查看未显示的文本或对象
(7)状态栏:显示文本的一些相关信息

二、基本操作
1、文本的输入:shift+ctrl:各种输入法的转换;ctrl+空格键:中文与英文输入法的转换;
(1)英文:注意大小写字母转换键Caps Lock
(2)汉字:在任务栏中转换中文输入法后输入
(3)数字:利用数字键盘(先使Num Lock键灯亮)
(4)符号:
A键盘上的符号按shift+符号
B键盘上没有的符号:点击“插入”菜单—点击“符号”—选择所需的符号—点击“插入”——点击“关闭”即可。
C在“输入法状态条”的软键盘上右单击弹出的菜单中选择所需的软键盘,单击所需的符号即可。
2、文本的选择:
(1)连续多个字符:按左键从要选择的第一个字符拖到最后一个字符;
(2)一行:光标移到待选一行的左边空白处(即是页边距的外边),当鼠标指针变为指向右方箭头时单击;
(3)一段落:光标移到待选段落的左边空白处,当鼠标指针变为指向右方箭头时按住鼠标左键拖动即可;
(4)整篇文章:点击“编缉”菜单——击“全选”(也可按Ctrl+A快捷键)
3、文本的移动、复制与删除:
(1)删除文本:选择文本后按键盘上的Delete键
(2)移动文本:
选择文本——点击“编辑”菜单——点击“剪贴”(可直接点击工具栏中的“剪贴”按钮)——光标放目标位置——点击“编辑”菜单——点击“粘贴” (可直接点击工具栏中的“粘贴”按钮)。(也可先选择文本
后再按住左键拖放到目标位置)
(3)复制文本:
选择文本——点击“编辑”菜单——点击“复制” (也可直接点击工具栏中的“复制”按钮)——光标放目标位置——点击“编辑” ——点击“粘贴”(也可直接点击工具栏中的“粘贴”按钮)。(也可选择文本后按住Ctrl键再按住左键拖放到目标位置)
(4)撤消与恢复操作:
A撤消:作用是撤消上一步操作。点击常用工具栏上的“撤消”按钮。
B恢复:作用是恢复被撤消的操作。点击常用工具栏上的“恢复“按钮。

三、文件的操作
⑴新建文档:单击常用工具栏上的新建按钮
⑵打开文档:点击“文件”菜单——点击“打开”——选择文件——点击“打开”
⑶保存文档:点击“文件”菜单——点击“保存”——在文件名上输入要保存的文件名称(可选择保存位置)——点击“保存”(第一次保存文件还可以用密码保存文件,以防其他人修改或查看文件的内容)
⑷关闭文档:点击“文件”菜单——点击“关闭”(或者按标题栏右侧的“关闭”按钮,如出现“是”“否”“取消”三个按钮,“是”是要用户保存该文档后再退出,“否”则是对该文档进行不保存而退出,“取消”则是不退出回到编辑状态。)
⑸另存为:
用不同的文件名、位置或文件格式保存活动文件,还可以使用此命令对有密码的文件进行修改密码。
⑹文档切换:单击任务栏上的文档名称按钮

四、页面设置
方法 :单击“文件”菜单——点击“页面设置”出现页面设置对话框
1、“页边距”标签可以设置上、下、左、右页边距;(也可以在页面中采用水平与垂直标尺大概的设置)
2、“纸型”标签可以选择纸张大小和方向,设置好后单点击“确定”便可。

五、打印预览(查看文档的最后编辑效果)
方法:单击文件菜单——点击打印预览(或单击常用工具栏的打印预览按钮)。在打印预览中我们可以看到光标变成了放大镜,在文档中移动鼠标单击可以查看的上下左右,预览完后单击关闭按钮关闭预览窗口,回到页面视图中。
六、打印
单击文件菜单——点击打印(出现对话框)——设置好后点击“确定”。

WORD第二课 文档格式化
一、显示比例:用来调整文档的显示比例
单击“常用”工具栏上的“显示比例”按钮右边的下拉箭头,再选择所需的显示比例。

二、字符格式
★:Word可以先采用默认的格式进行文字的录入,然后对默认的字符格式(先选择)再进行更改至所需的格式;也可以先进行设置好所需的格式后,再进行字符的录入。
1、利用格式工具栏
①改变字体:选择文本——单击字体框旁的下拉箭头——选择所需字体
②改变字符大小:选择文本——单击字体框旁的下拉箭头——选择所需字号
③加粗/倾斜文本:选择文本——单击格式工具栏中的“加粗/倾斜”按钮
④给字符加下划线:选择文本——单击下划线按钮旁的下拉箭头——选择下划线类型以及颜色
⑤字符缩放:选择文本——单击字符缩放按钮旁的下拉箭头——选择缩放比例
⑥给所选文本加默认边框:选择文本——单击格式工具栏上的“符边框”按钮
⑦给所选文本加默认底纹:选择文本——单击格式工具栏中上的“字符底纹”按钮
⑧改变字符颜色:选择文本——单击字体颜色按钮旁的下拉箭头——选择所需颜色
2、利用字体对话框格式化:选择文本——单击“格式”菜单——点击“字体”出现字体对话框
“字体”标签:可设置字体、字号、字形、字符颜色、下划线及字体效果等
“字符间距”标签:可设置字符缩放、字符间距、字符位置
“文字效果”标签可给文字增加动态修饰
技巧:选择文本——右击——点击“字体”对话框
3、格式刷:位于“常用”工具,用于复制选定对象或文本格式,并将其应用到你所需的对象或文本中。
步骤:
(1)选择原格式文本
(2)单击“格式刷”
(3)选择目标文本即可
★ :要将格式复制到多个项目上,可双击“格式刷”,然后选择要改变的其格式的各个项目。完成操作后,按“Esc”取消键以关闭“格式刷”。

三、段落格式
1、利用水平标尺缩进段落文本
(1)首行缩进:
指段落的第一行往右缩进,其余的行不变;(方法:光标放段落中,拖动水平标尺上的“首行缩进“按钮)
(2)悬挂缩进:
指段落的第二行不变。其余的往右缩进:(方法:光标放段落中,拖动水平标尺上的“悬挂缩进“按钮
(3)左缩进:
整个段落往右缩进;(方法:光标放段落中,拖动水平标尺上的“左缩进”按钮。)
(4)右缩进
整个段落往左缩进;(方法:光标放段落中,拖动水平标尺上的“右缩进”按钮。)
2、利用格式工具栏对齐文本
在格式工具栏上有五种文本对齐方式(两端对齐(即左对齐)、居中对齐、右对齐、分散对齐、)可以通过这四种对齐方法来对齐段落文本
3、利用段落对话框格式化段落
选择段落——点击“格式”菜单——点击“段落”(出现段落对话框)——选择“缩进与间距”标签——根据需要进行设置——(可设置左、右缩进量;段前段后间距;行间距;首行缩进/悬挂缩进;文本的对齐方式)——点击“确定”
★:文档默认的行距为单倍行距。默认的段落的间距为0,也就是等到于行距。单倍行距,就是根据该行中最大字体 (一行中可能有多种字体)的高度加上其空余的距离。空余距离是根据该行最大的字体的大小决定的。字体大,其空余的距高就小。该行的高度是根据这些因素自动调节的。当一行中有大号字体时或有上、下标时,能自动调整行距。
★:可以选择的行距及其实际距离如下:
A、1.5倍行距:此行距是单倍行距的一倍半
B、2倍行距:是单倍行距的两倍
C、多倍行距:按单倍会距的百分比增加或减少的行距。
D、最小值:所选用的行距仅能容纳下文本中最大的字体或图形
E、固定值:文本中的每一行均按此固定值设置,各行的间距相等。此固定值的行距应能容纳行中最大字体和图形。

四、边框与底纹设置
1、给文本加边框:选择文本——点击格式菜单——点击边框与底纹(出现对话框)选择边框标签——根据需要选择边框类型、选择类型、线条颜色、线条宽度及适用范围——点击确定。
2、给文本加底纹:选择文本——点击格式菜单——点击边框和底纹——选择“底纹”标签——选择颜色及应用范围——点击确定。
3、给页面加边框:点击“格式”菜单——点击边框和底纹——选择页面边框标签——选择所需的边框类型、线条颜色、线条大小等到或选择艺术型边框——点击确定。
★:可点击其中的“选项”按钮设置度量依据为文字或为页边(默认的为页边)。

五、文字方向
更改文档或表格单元格或文本框的文字方向
点击“格式”菜单——点击“文字方向”(弹出对话框)——设置好后点击确定,也可以点击常用工具栏的“文字方向”按钮。

六、中文简繁转换
先选择要转换的文字,再点击常用工具栏的“中文简繁转换”按钮。

七、背景
这些背景除了水印外,其他的都不是为打印文档设计的,只在Web版式视图中显示出来;页面视图是为了打印而设置的一种视图格式。
点击“格式 ”菜单——“背景”——再单击所需颜色,或单击“其他颜色”命令,选择其他颜色或自定义颜色。单击“填充效果”命令可选择特殊效果(如边渡、纹理、图案、图片)。

八、分栏
1、将WORD文档分成多个竖栏
设置分栏:选择文本——点击“格式”菜单——点击“分栏”出现分栏对话框(根据需要选择分栏设置,如需要竖线则选中分隔线复选框)——点击确定
2、要将某个段落分成若干栏,可先选择该段落,然后,再进行分栏的设置。
3、取消分栏:
光标放在已分栏的文本或段落中——点击“格式”菜单——点击“分栏”——在对话框中选择—栏样式——点击确定。
★ :在水平标尺中可查看到分栏的栏数。

九、中文版式统一的步骤为先选择文字,后单击 “格式”菜单——“中文版式”——点击所需的命令
1、“拼音指南”:能够自动将汉字拼音标注在选定的中文文字上。
2、“带圈字符”:为所选文字添加圈号也可取消带圈字符的圈号。
3、“纵横混排”:
将竖排文字中的半角字符向左旋转90度进行显示,以使其具有正确的方向,也可以将旋转过的文字还原为原来的显示方向。
4、“合并字符”:将多个字符(不超过6个)合并成一个整体,这些字符将被压缩并排列为两行。也可将已经合并的字符还原为普通字符
5、“双行合一”:
将输入的文字显示为长度相等的上下两行,其高度与一行正常文字相同,也可将具有双行合格式的文字还原为普通文字。

Word第三课 表格处理
组成表格的三个层次是单元格——行/列——表格:创建表格之前首进先行页面设置,其次点清所做表格的行数与列数,然后创建表格,再对表格进行编辑格式。
一、 创建表格
1、点击常用工具栏上的“插入表格”按钮,拖出所需要的行列数
2、单击“表格”菜单——点击“插入”——点击“表格”——设置行/列数——点击确定

二、表格的基本操作
1、表格的移动与调整大小:
(1)将鼠标指针移动到表格范围内时,在表格的左上角会出现一个移动控制点,此控制点有二个作用:一是用鼠标拖动此移动控制点,即可随意拖动表格;二是单击该控制点可全选整个表格。
(2)将鼠标指针移动到表格范围内时,在表格的右下角会出现一个调整控制点,用鼠标拖动此调整控制点,即可调整表格大小。
2、表格的选择:
(1)单元格:
表格中的一个单元格,当光标放在单元格的左下角时会出现一个黑色的斜向上的箭头,单击即可。
(2)行/列
鼠标移至行(列)的左侧(上边界)变成右(下)箭头时单击便可
(3)单元格区域:
由多个单元格组成的矩形区域:(方法:利用左键拖动选择)
(4)整张表格:
光标放在表格内——单击“表格”菜单——点击“选定”——点击表格。(或单击表格左上角的移动控制符号)
3、调整行高与列宽
行高:把鼠标放在表格的横线上,出现一个符号和上下两个箭头时,按住鼠标左键不放上下拖动,即可。
列宽:把鼠标放在表格的竖线上,出现一个符号和上下两个箭头时,按住鼠标左键不放上下拖动,即可。
4、一个或多个连续单元格的列宽修改:
先选定一个或多个单元格,把鼠标放在表格的竖线上,出现一个双竖线和左右两个箭头时,按住鼠标左键不放上下拖动,即可。
5、删除与插入表格、行、列、单元格:
删除:光标放在所需要删除的表格、行、列、单元格,点击“表格”菜单——点击“删除”——选择一个所需的命令单击即可。
插入:点击“表格”菜单——点击“插入”——根据所需的命令单击之即可。
6、拆分表格:
把光标放在所需拆分的行中,点击“表格”——点击“拆分表格”,光标所在的行即与上一行即拆分成两个表格;如果要合并拆分后的表格,可把光标放在两个表格的空隙之间的页边距外面单击后,按 Delete键即可。
7、绘制斜线表头:
把光标放在要绘制斜线的单元格,点击“表格”——点击“绘制斜线头”——在弹出对话中按所需要设置。

㈦ 图片的四种格式.jpg、.gif、.png、.bmp各是什么意思

1、文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。

2、图形交换格式(外语简称:GIF、外语全称:GraphicsInterchangeFormat),是CompuServe公司在 1987年开发的图像文件格式。

GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左右,它不属于任何应用程序。几乎所有相关软件都支持它,公共领域有大量的软件在使用GIF图像文件。

3、便携式网络图形(外语简称PNG、外语全称:PortableNetworkGraphics),是网上接受的最新图像文件格式。PNG能够提供长度比GIF小30%的无损压缩图像文件。它同时提供 24位和48位真彩色图像支持以及其他诸多技术性支持。

由于PNG非常新,所以并不是所有的程序都可以用它来存储图像文件,但Photoshop可以处理PNG图像文件,也可以用PNG图像文件格式存储。

4、BMP 是(Windows位图) Windows 位图可以用任何颜色深度(从黑白到 24 位颜色)存储单个光栅图像。Windows 位图文件格式与其他 Microsoft Windows 程序兼容。它不支持文件压缩,也不适用于 Web 页。

Windows 位图文件格式的缺点超过了它的优点。为了保证照片图像的质量,请使用 PNG 、JPEG、TIFF 文件。BMP 文件适用于 Windows 中的墙纸。

(7)caps压缩扩展阅读:

jpg格式的图片转换成tif图片格式的方法:

1、首先在格式工厂软件首页的图片下面点击你要转换的最终格式【TIF】。

㈧ 用什么软件或者方法可以压缩AVI文件

这里我们讲解怎样用DirectShow来压缩一个AVI文件。我们重点放到视频压缩,同样的方法可以应用到音频压缩。
我们分以下几步来讲解:
1、 选择一个压缩过滤器
有许多种方法可以压缩视频或者音频,比如:
a、 本地DirectShow过滤器
b、 视频压缩管理编码器(VCM)
c、 音频压缩管理编码器(ACM)
d、 DirectX媒体对象(DMOs)
在DirectShow中,VCM被AVI Compressor过滤器封装了。同样的,ACM编码器也被ACM Wrapper过滤器封装了。DMOs被DMO Wrapper过滤器封装。系统设备枚举器提供了一个统一的方法来枚举和创建这些压缩器,我们不用考虑底层的操作。
枚举设备方法请参照前面的讲述。这里我们只给出代码:
void OnInitDialog(HWND hDlg)
{
HRESULT hr;
ICreateDevEnum *pSysDevEnum = NULL;
IEnumMoniker *pEnum = NULL;
IMoniker *pMoniker = NULL;

hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,
(void**)&pSysDevEnum);
hr = pSysDevEnum->CreateClassEnumerator(
CLSID_VideoCompressorCategory, &pEnum, 0);

while (S_OK == pEnum->Next(1, &pMoniker, NULL))
{
IPropertyBag *pPropBag = NULL;
pMoniker->BindToStorage(0, 0, IID_IPropertyBag,
(void **)&pPropBag);
VARIANT var;
VariantInit(&var);
hr = pPropBag->Read(L"FriendlyName", &var, 0);
if (SUCCEEDED(hr))
{
LRESULT iSel = AddString(GetDlgItem(hDlg,
IDC_CODEC_LIST), var.bstrVal);
}
VariantClear(&var);
pPropBag->Release();
pMoniker->Release();
}

SendDlgItemMessage(hDlg, IDC_CODEC_LIST,
LB_SETCURSEL, 0, 0);
pSysDevEnum->Release();
pEnum->Release();
}
创建一个过滤器的实例,调用IMoniker::BindToObject方法。方法会返回一个IBaseFilter接口指针。就象下面那样:
IBaseFilter *pFilter = NULL;
hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter,
(void**)&pFilter);
if (SUCCEEDED(hr))
{
// 可以使用过滤器了
// 记着释放IBaseFilter接口指针
}
2、 设置视频压缩属性
视频压缩过滤器可以在它的输出引脚支持IAMVideoCompression接口。使用这个接口可以设置压缩的属性,比如桢率,压缩质量等待。
首先,调用IBaseFilter::EnumPins方法找到过滤器的输出引脚,然后为接口查询引脚。一些过滤器不是所有的接口都支持,也有的不支持某个压缩属性。为了决定支持的属性能力,我们调用IAMVideoCompression::GetInfo来确定。这个方法返回一些信息:
a、 一个设置性能的标识
b、 一个描述字符串和版本字符串
c、 默认的桢速率,质量等参数
它按照下面的语法调用:
hr = pCompress->GetInfo(pszVersion, &cbVersion, pszDesc, &cbDesc,
&lKeyFrame, &lPFrame, &dblQuality, &lCap);

pszVersion和pszDesc参数是接收版本和描述字符串的宽字符缓冲区。cbVersion和cbDesc参数接收被请求的缓冲区大小。IkeyFrame,lPFrame和dblQuality参数获得默认的桢速率,p桢率和质量。质量是用从0.0到1.0的浮点数来表示的。Icap参数获得一个被或的能力标识,这个被定义为CompressionCaps枚举类型。
这些参数的任何一个都可以设置为NULL,。例如如果为了获得版本和描述字符串,第一次调用方法的时候,第一个和第三个参数为NULL。使用返回值cbVersion和cbDesc来分配缓冲区,然后再次调用该方法:
int cbVersion, cbDesc; // Size in bytes, not characters!
hr = pCompress->GetInfo(0, &cbVersion, 0, &cbDesc, 0, 0, 0, 0);
if (SUCCEEDED(hr))
{
WCHAR *pszVersion = new WCHAR[cbVersion/2];
WCHAR *pszDesc = new WCHAR[cbDesc/2];
hr = pCompress->GetInfo(pszVersion, 0, pszDesc, 0, 0, 0, 0, 0);
}
iCap参数提供了对IAMVideoCompression方法的过滤器的支持能力。例如,如果iCap包含了CompressionCaps_CanKeyFrame标志,你就可以调用IAMVideoCompression::get_KeyFrameRate方法来得到关键桢的速率,调用IAMVideoCompression::put_KeyFrameRate来设置桢速率。如果iCap的值没有包含这些参数,那么就只能使用默认的值了。
if (lCap & CompressionCaps_CanKeyFrame)
{
hr = pCompress->get_KeyFrameRate(&lKeyFrame);
if (FAILED(hr) || lKeyFrame < 0)
{
lKeyFrame = lDefaultKeyFrame; // 来自 GetInfo.
}
}

下面的代码试着在输出引脚寻找IAMVideoCompression接口。如果成功,它将会返回默认的和实际的压缩属性值。
HRESULT hr = E_FAIL;
IEnumPins *pEnum = NULL;
IPin *pPin = NULL;
IAMVideoCompression *pCompress = NULL;

// 寻找支持 IAMVideoCompression的引脚
pFilter->EnumPins(&pEnum);
while (S_OK == pEnum->Next(1, &pPin, NULL))
{
hr = pPin->QueryInterface(IID_IAMVideoCompression, (void**)&pCompress);
pPin->Release();
if (SUCCEEDED(hr)) // Found the interface.
{
break;
}
}
if (SUCCEEDED(hr))
{
long lCap; // 性能标识
long lKeyFrame, lPFrame; // 真实值
double m_Quality;
long lKeyFrameDef, lPFrameDef; //默认值
double QualityDef;

//得到默认值和它的性能
hr = pCompress->GetInfo(0, 0, 0, 0, &KeyFrameDef, &lPFrameDef,
&QualityDef, &lCap);
if (SUCCEEDED(hr))
{
// 得到实际的值.
if (lCap & CompressionCaps_CanKeyFrame)
{
hr = pCompress->get_KeyFrameRate(&lKeyFrame);
if (FAILED(hr) || lKeyFrame < 0)
lKeyFrame = lKeyFrameDef;
}
if (lCap & CompressionCaps_CanBFrame)
{
hr = pCompress->get_PFramesPerKeyFrame(&lPFrame);
if (FAILED(hr) || lPFrame < 0)
lPFrame = lPFrameDef;
}
if (lCap & CompressionCaps_CanQuality)
{
hr = pCompress->get_Quality(&Quality);
if (FAILED(hr) || Quality < 0)
Quality = QualityDef;
}
}
}

注意:如果你使用IcaptureGraphBuilder2接口来创建你的过滤图形,你可以调用IcaptureGraphBuilder2::FindInterface方法来获得IAMVideoCompression接口。
3、 建立压缩图形
下图是一个典型的AVI文件的过滤图形:

AVI_Splitter过滤器从文件的源过滤器(File Source(Async))拉数据,然后分解到视频和音频流。视频解压缩过滤器解码被压缩的视频,然后重新被视频压缩器重新压缩。
被压缩的视频进入到AVI Mux过滤器。音频流在这个例子中没有被压缩,因此它直接从AVI Splitter传输到AVI Mux。AVI Mux进行隔行扫描,然后使用File Write过滤器将数据输出到磁盘上。注意,就算原始文件里面没有音频流,AVI Mux过滤器也是必须的。最简单的方法创建这种过滤图形就是使用Capture Graph Builder,这是DirectShow里面为了建立捕获图形或者别的定制的过滤图形的一个部件。
注意:DirectShow里面包含了两个Capture Graph Builder版本。它们提供了不同的接口和类的标识。早期的版本类标识是CLSID_CaptureGraphBuild,接口是IcaptureGraphBuilder。它兼容存在的应用程序。新版本的类标识是CLSID_CaptureGraphBuilder2新的接口名称是IcaptureGraphBuilder2。新的接口比老的接口有更多的灵活性。
创建Capture Graph Builder我们还是使用CoCreateInstance:
ICaptureGraphBuilder2 *pBuild = NULL;
hr = CoCreateInstance(CLSID_CaptureGraphBuilder2,
NULL, CLSCTX_INPROC_SERVER,
IID_ICaptureGraphBuilder2, (void **)&pBuild);
然后我们使用Capture Graph Builder来建立过滤图形:
a、 建立部分渲染的过滤图形,它包含AVI Mux 过滤器和File Writer过滤器。
b、 添加源过滤器和压缩过滤器。
c、 连接源过滤器到MUX 过滤器。
下面逐步的解释每一个细节:
建立渲染段
为了建立过滤图形的渲染段,调用IcaptureGraphBuilder2::SetOutputFileName方法。它返回一个MUX的过滤器和File Write的指针。MUX是下面建立过滤图形所需要的,但是这个例子不需要File Write,因此,它的参数为NULL。
IBaseFilter *pMux = NULL;
pBuild->SetOutputFileName(
&MEDIASUBTYPE_Avi, //文件类型
wszOutputFile, // 文件名
&pMux, // 得到一个指向multiplexer的指针
NULL); // 得到一个指向File Write的指针

当该方法返回,MUX过滤器有一个很明显的参考计数,所以以后一定要确保释放它。MUX过滤器提供了两个接口来控制AVI格式:
IconfigInterleaving接口:设置交错模式
IconfigAviMux接口:设置主流和AVI兼容性的索引
添加源过滤器和压缩过滤器
下一步我们要在过滤图形中添加源过滤器和压缩过滤器。当你调用SetOutputFileName的时候,Capture Graph Builder会自动的创建一个过滤图形管理器的实例。你可以调用IcaptureGraphBuilder::GetFiltergraph方法来获得刚才创建的过滤图形管理器的指针。
IGraphBuilder *pGraph = NULL;
pBuild->GetFiltergraph(&pGraph);
现在我们该调用IgraphBuilder::AddSourceFilter方法来添加异步文件源过滤器,然后调用IfilterGraph::AddFilter方法来添加视频压缩过滤器:
IBaseFilter *pSrc = NULL;
pGraph->AddSourceFilter(wszInputFile, L"Source Filter", &pSrc);
pGraph->AddFilter(pVComp, L"Compressor");
到了这一步我们的状态就象下图那样,源过滤器和压缩过滤器没有和别的任何过滤器连接。

连接源到Mux
最后一步就是通过视频压缩过滤器连接源过滤器到AVI Mux过滤器。我们使用IcaptureGraphBuilder2::RenderStream方法来连接源过滤器的输出引脚到指定的过滤器。
前两个参数指定了用那个源过滤器的引脚来连接,通过指明引脚的分类和媒体类型来实现。异步文件源过滤器只有一个输出引脚,所以这些参数要设置成NULL。后三个参数指定了源过滤器,压缩过滤器,和Mux过滤器。
下面的代码演示了通过视频压缩过滤器来渲染视频流:
pBuild->RenderStream(
NULL, // 输出引脚类型
NULL, // 媒体类型
pSrc, // 源过滤器
pVComp, // 压缩过滤器
pMux);
假定源文件包含了音频流,AVI Splitter过滤器会在输出引脚输出音频流。为了连接这个管脚我们需要再次调用RenderStream:
pBuild->RenderStream(NULL, NULL, pSrc, NULL, pMux);
这里我们没有指定压缩过滤器。而且源过滤器的输出引脚已经连接了,因此RenderStream方法会搜索一个未连接的输出引脚到Splitter过滤器。它可以直接连接引脚到MUX过滤器。但是如果源文件没有音频流,那么第二次调用会失败。
4、 写文件
如果想写文件正常的进行,你必须调用ImediaControl::Run方法来运行过滤图形。等到播放完成后调用ImediaControl::Stop。
如果要显示文件的写的进度,你可以使用ImediaSeeking来查询Mux过滤器。调用ImediaSeeking::GetDuration方法来获得文件的持续时间。定时的使用ImediaSeeking::GetCurrentPostition方法来获得当前的位置,但必须要是过滤图形运行中。
注意,一般情况下我们用ImediaSeeking接口查询过滤图形管理器来定位,如果正在写文件的话,这将是一个特例。这里我们要查询Mux过滤器就可以了。查询过滤图形定位要求回放的时候才可以,而不是写文件的时候。
看了下面的代码读者就会更加清楚了。
IMediaSeeking *pSeek = NULL;
IMediaEventEx *pEvent = NULL;
IMediaControl *pControl = NULL;
REFERENCE_TIME rtTotal;

hr = pMux->QueryInterface(IID_IMediaSeeking, (void**)&pSeek);
hr = pGraph->QueryInterface(IID_IMediaEventEx, (void**)&pEvent);
hr = pGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);

// 设置DirectShow的时间通报
hr = pEvent->SetNotifyWindow((OAHWND)hwnd, WM_GRAPHNOTIFY, 0);

hr = GetDuration(&rtTotal);
SendDlgItemMessage(hwnd, IDC_PROGRESS1, PBM_SETRANGE, 0,
MAKELPARAM(0, rtTotal / 10000000));
// 开始时间.
UINT_PTR res = SetTimer(hwnd, nIDEvent, 100, NULL);
// 运行过滤图形.
pControl->Run();
当应用程序收到定时器事件,它就更新当前位置:
void OnTimer(HWND hDlg, IMediaSeeking *pSeek)
{
REFERENCE_TIME rtNow;
HRESULT hr = pSeek->GetCurrentPosition(&rtNow);
if (SUCCEEDED(hr))
{
SendDlgItemMessage(hDlg, IDC_PROGRESS1, PBM_SETPOS, rtNow/10000000, 0);
}
}
当应用程序收到DirectShow结束事件,它就可以停止图形,就象下面那样:
LRESULT CALLBACK WndProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
/* ... */
case WM_GRAPHNOTIFY:
DoHandleEvent();
break;
/* ... */
}
}

void DoHandleEvent()
{
long evCode, param1, param2;
bool bComplete = false;
if (!pEvent) return;

//得到所有的事件
while (SUCCEEDED(pEvent->GetEvent(&evCode, ¶m1, ¶m2, 0))
{
pEvent->FreeEventParams(evCode, param1, param2);
switch(evCode)
{
case EC_USERABORT:
case EC_ERRORABORT:
case EC_COMPLETE:
bComplete = true;
break;
}
}
if (bComplete)
{
pControl->Stop(); // Important! You must stop the graph!

//关掉事件通报.
pEvent->SetNotifyWindow(NULL, 0, 0);
pEvent->Release();
pEvent = NULL;
SendDlgItemMessage(IDC_PROGRESS1, PBM_SETPOS, 0, 0);
KillTimer(hwnd, nIDEvent);
}
}

㈨ OpenGL中怎么使用压缩纹理

glCompressedTexImage2DARB就是直接加载DXT数据的函数哦,该函数不能直接加载dds。
dds格式分为2个部分:
1、dds头
2、dxt压缩数据

dds的头文件信息如下:
/*
* DDCOLORKEY
*/
typedef struct _DDCOLORKEY
{
uint32 dwColorSpaceLowvalue; // low boundary of color space that is to
// be treated as Color Key, inclusive
uint32 dwColorSpaceHighvalue; // high boundary of color space that is
// to be treated as Color Key, inclusive
} DDCOLORKEY;

/*
* DDSCAPS2
*/
typedef struct _DDSCAPS2
{
uint32 dwCaps; // capabilities of surface wanted
uint32 dwCaps2;
uint32 dwCaps3;
union
{
uint32 dwCaps4;
uint32 dwVolumeDepth;
} DUMMYUNIONNAMEN(1);
} DDSCAPS2;

/*
* DDPIXELFORMAT
*/
typedef struct _DDPIXELFORMAT
{
uint32 dwSize; // size of structure
uint32 dwFlags; // pixel format flags
uint32 dwFourCC; // (FOURCC code)
union
{
uint32 dwRGBBitCount; // how many bits per pixel
uint32 dwYUVBitCount; // how many bits per pixel
uint32 dwZBufferBitDepth; // how many total bits/pixel in z buffer (including any stencil bits)
uint32 dwAlphaBitDepth; // how many bits for alpha channels
uint32 dwLuminanceBitCount; // how many bits per pixel
uint32 dwBumpBitCount; // how many bits per "buxel", total
uint32 dwPrivateFormatBitCount;// Bits per pixel of private driver formats. Only valid in texture
// format list and if DDPF_D3DFORMAT is set
} DUMMYUNIONNAMEN(1);
union
{
uint32 dwRBitMask; // mask for red bit
uint32 dwYBitMask; // mask for Y bits
uint32 dwStencilBitDepth; // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits)
uint32 dwLuminanceBitMask; // mask for luminance bits
uint32 dwBumpDuBitMask; // mask for bump map U delta bits
uint32 dwOperations; // DDPF_D3DFORMAT Operations
} DUMMYUNIONNAMEN(2);
union
{
uint32 dwGBitMask; // mask for green bits
uint32 dwUBitMask; // mask for U bits
uint32 dwZBitMask; // mask for Z bits
uint32 dwBumpDvBitMask; // mask for bump map V delta bits
struct
{
uint16 wFlipMSTypes; // Multisample methods supported via flip for this D3DFORMAT
uint16 wBltMSTypes; // Multisample methods supported via blt for this D3DFORMAT
} MultiSampleCaps;

} DUMMYUNIONNAMEN(3);
union
{
uint32 dwBBitMask; // mask for blue bits
uint32 dwVBitMask; // mask for V bits
uint32 dwStencilBitMask; // mask for stencil bits
uint32 dwBumpLuminanceBitMask; // mask for luminance in bump map
} DUMMYUNIONNAMEN(4);
union
{
uint32 dwRGBAlphaBitMask; // mask for alpha channel
uint32 dwYUVAlphaBitMask; // mask for alpha channel
uint32 dwLuminanceAlphaBitMask;// mask for alpha channel
uint32 dwRGBZBitMask; // mask for Z channel
uint32 dwYUVZBitMask; // mask for Z channel
} DUMMYUNIONNAMEN(5);
} DDPIXELFORMAT;

/*
* DDSURFACEDESC2
*/
typedef struct _DDSURFACEDESC2
{
uint32 dwSize; // size of the DDSURFACEDESC structure
uint32 dwFlags; // determines what fields are valid
uint32 dwHeight; // height of surface to be created
uint32 dwWidth; // width of input surface
union
{
int32 lPitch; // distance to start of next line (return value only)
uint32 dwLinearSize; // Formless late-allocated optimized surface size
} DUMMYUNIONNAMEN(1);
union
{
uint32 dwBackBufferCount; // number of back buffers requested
uint32 dwDepth; // the depth if this is a volume texture
} DUMMYUNIONNAMEN(5);
union
{
uint32 dwMipMapCount; // number of mip-map levels requestde
// dwZBufferBitDepth removed, use ddpfPixelFormat one instead
uint32 dwRefreshRate; // refresh rate (used when display mode is described)
uint32 dwSrcVBHandle; // The source used in VB::Optimize
} DUMMYUNIONNAMEN(2);
uint32 dwAlphaBitDepth; // depth of alpha buffer requested
uint32 dwReserved; // reserved
void* lpSurface; // pointer to the associated surface memory
union
{
DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use
uint32 dwEmptyFaceColor; // Physical color for empty cubemap faces
} DUMMYUNIONNAMEN(3);
DDCOLORKEY ddckCKDestBlt; // color key for destination blt use
DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use
DDCOLORKEY ddckCKSrcBlt; // color key for source blt use
union
{
DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface
uint32 dwFVF; // vertex format description of vertex buffers
} DUMMYUNIONNAMEN(4);
DDSCAPS2 ddsCaps; // direct draw surface capabilities
uint32 dwTextureStage; // stage in multitexture cascade
} DDSURFACEDESC2;

struct DDS_IMAGE_DATA
{
int width;
int height;
int components;
unsigned int format;
int numMipMaps;
unsigned char *pixels;//这个是压缩的图像信息文件,glCompressedTexImage2DARB就是加载这个。
};

阅读全文

与caps压缩相关的资料

热点内容
如何更改站点文件夹名字 浏览:890
如何看服务器几核 浏览:264
找酒吧设计公司用什么app 浏览:680
基本初等函数的导数公式及导数的运算法则 浏览:915
为什么小米app启动广告关不了 浏览:877
空调压缩机一直不停 浏览:511
养殖系统开发源码 浏览:82
pdf的目录 浏览:406
光遇安卓如何一个人拍视频 浏览:277
怨女pdf 浏览:708
扭曲服务器什么时候开 浏览:23
加密货币换平台 浏览:610
手机内存压缩软件 浏览:33
生成树是否与遍历算法有关 浏览:728
python强化学习迷宫 浏览:450
老包子解压视频 浏览:885
服务器注册是什么意思 浏览:419
程序员群体焦虑如何破局 浏览:585
程序员在广州上班 浏览:803
androidlinuxadt 浏览:512