压缩文档中的图像转让专利

申请号 : CN200680047453.3

文献号 : CN101331480B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·R·兰博瑞克B·R·默德芬M·杰兰姆科R·C·希尔

申请人 : 微软公司

摘要 :

包含在文档中的图像被压缩,以便减小文档的文件大小。压缩可以以使压缩步骤自动地发生于图像的方式发生。所执行的压缩步骤基于与文档中的图像有关的可用信息来确定。使用该信息来确定图像是否应该被压缩以及要使用何种压缩方法。

权利要求 :

1.一种用于压缩存储在文档中的图像的计算机实现的方法,包括:访问所述文档中的图像,其中,所述文档除包括所述图像外还包括其它数据;

分类所述图像;

自动地确定对所述图像的压缩步骤;

将所述压缩步骤应用于所述图像;

确定经压缩的图像是否被用户操纵,即用户执行调整大小操作使得所述经压缩的图像被调整大小和/或裁剪掉非必要的区域;

响应于保存所述文档,执行额外的压缩步骤以根据被调整大小的经压缩图像的新的大小来重新采样经压缩图像,并丢弃任何经裁剪的区域。

2.如权利要求1所述的计算机实现的方法,其特征在于,分类所述图像包括将所述图像分类为以下中的至少一个:照片和非照片。

3.如权利要求1所述的计算机实现的方法,其特征在于,还包括确定图像何时被插入到所述文档中,以及在所述图像被插入时,自动地执行以下操作中的至少一种:将非必要数据从所述图像中除去;对所述图像进行重新采样;将所述图像转换成另一种格式。

4.如权利要求2所述的计算机实现的方法,其特征在于,分类所述图像包括构建所述图像的直方图。

5.如权利要求2所述的计算机实现的方法,其特征在于,自动地确定对所述图像的压缩步骤包括确定以下各项中的至少一个:是否能将所述图像调色板化;所述图像是否是错误的格式;是否具有非必要像素;所述图像是否包含透明度信息;所述图像是否已被剪裁;

和所述图像是否已被调整大小。

6.如权利要求5所述的计算机实现的方法,其特征在于,确定所述图像是否已被剪裁包括确定经剪裁的区域以及丢弃所述经剪裁的区域。

7.如权利要求5所述的计算机实现的方法,其特征在于,确定所述图像是否已被调整大小包括对所述图像进行重新采样。

8.如权利要求5所述的计算机实现的方法,其特征在于,确定所述图像是否具有非必要像素包括:确定一期望分辨率以及基于所述期望分辨率对所述图像进行重新采样。

9.一种用于压缩存储在文档中的图像的系统,包括:

访问所述文档中的图像的装置,其中,所述文档除包括所述图像外还包括其它数据;

分类所述图像的装置;

自动地确定对所述图像的压缩步骤的装置;

将所述压缩步骤应用于所述图像的装置;

确定经压缩的图像是否被用户操纵的装置,即用户执行调整大小操作使得所述经压缩的图像被调整大小和/或裁剪掉非必要的区域;

响应于保存所述文档,执行额外的压缩步骤以根据被调整大小的经压缩图像的新的大小来重新采样经压缩图像,并丢弃任何经裁剪的区域的装置。

10.如权利要求9所述的系统,其特征在于,还包括:确定图像何时被插入到所述文档中以及所述文档何时被保存的装置。

11.如权利要求10所述的系统,其特征在于,确定所述图像何时被插入到所述文档中以及所述文档何时被保存的装置包括自动地执行以下操作中的至少一项的装置:将非必要数据从所述图像中除去;对所述图像进行重新采样;将所述图像转换成另一种格式;丢弃所述图像的经裁剪的区域;和基于放置尺寸对所述图像进行重新采样。

12.如权利要求11所述的系统,其特征在于,分类所述图像的装置包括:构建所述图像的直方图以及分析所述直方图以确定像素分配的装置。

13.如权利要求11所述的系统,其特征在于,自动地确定对所述图像的压缩步骤的装置包括确定以下各项中的至少一个的装置:是否能将所述图像调色板化;所述图像是否是错误的格式;是否具有非必要像素;所述图像是否包含透明度信息;所述图像是否已被剪裁;和所述图像是否已被调整大小。

说明书 :

压缩文档中的图像

[0001] 背景
[0002] 文档的文件大小会随着非文本元素的加入而快速增长。例如,图像在文档中的广泛使用会造成文档的快速增长。这个问题由于图像质量的提高,特别是由于数码相机的更高分辨率而愈发严重。除了将文档存储在硬盘驱动器上之外,许多文档还会存储在其它地方。例如,文档会通过电子邮件发给一群用户,其中每个用户都存储其自己的文档复本。尽管用户可以手动地压缩文档内的图像,但这通常不会发生。因为用户不仅必须了解如何压缩图像,而且还必须知道这种压缩将如何影响其图像。
[0003] 概述
[0004] 提供本概述是为了以简化的形式来引入在下面的详细说明中将对其作进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也并非旨在用于帮助确定所要求保护的主题的范围。
[0005] 包含在文档中的图像被压缩以减小文档的文件大小。压缩可以以这样一种方式发生,即压缩步骤可自动地发生在文档内的图像上。所执行的压缩步骤基于与文档中的图像有关的可用信息确定。随后,使用该信息来确定图像是否应该被压缩,以及要使用何种压缩方法。
[0006] 附图简述
[0007] 图1示出了计算机的示例性计算体系结构;
[0008] 图2示出了图像压缩系统;
[0009] 图3示出了用于自动地压缩文档中的图像的示例性场景;
[0010] 图4说明了用于分类图像的过程;
[0011] 图5示出了用于在插入操作时压缩图像的过程;
[0012] 图6示出了用于在保存时压缩的过程;
[0013] 图7示出了用于在用户调用时压缩文档中的图像的过程;以及
[0014] 图8示出了根据本发明各方面的示例性压缩对话框。
[0015] 详细描述
[0016] 现参考附图,将描述本发明的各个方面,且附图中类似的标记表示类似的元件。具体地,图1及相应讨论旨在提供对合适的在其中可以实现本发明的各个实施例的计算环境的简单、概括的描述。
[0017] 一般而言,程序模块包括可执行具体任务或实现具体的抽象数据类型的例程、程序、组件、数据结构、和其它类型的结构。可以使用其它计算机系统配置,其中包括手持式设备、多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等。还可以使用在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。
[0018] 现参考图1,将描述在本发明各实施例中利用的计算机2的说明性计算机体系结构。图1中所示的计算机体系结构示出了一种台式或移动计算机,包括有中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)11在内的系统存储器7、以及将存储器耦合到CPU 5的系统总线12。包含有例如在启动期间有助于在计算机内的各个元件之间传送信息的基本例程的基本输入/输出系统被存储在ROM 11中。计算机2还包括用于存储操作系统16、应用程序和其它程序模块的大容量存储器设备14,下面将对此进行更详细的描述。
[0019] 大容量存储器设备14通过连接于总线12的大容量存储控制器(未示出)连接至CPU 5。大容量存储器设备14及其相关联的计算机可读介质可为计算机2提供非易失性的存储。虽然在此包括的对计算机可读介质的描述指诸如硬盘或CD-ROM驱动器之类的大容量存储器设备,但计算机可读介质可以是能够被计算机2访问的任何可用介质。
[0020] 作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术,CD-ROM、数字通用盘(“DVD”)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可以用来存储期望信息并可被计算机2访问的任何其它介质。
[0021] 根据本发明的各个实施例,计算机2可以在使用通过诸如因特网等网络18到远程计算机的逻辑连接的网络环境中运行。计算机2可以通过连接到总线12的网络接口单元20连接到网络18。也可以利用网络接口单元20连接到其它类型的网络和远程计算机系统。
计算机2还可以包括输入/输出控制器22,用于接收和处理来自包括键盘、鼠标、或电子触控笔(图1未示出)在内的众多其它设备的输入。类似地,输入/输出控制器22可以向显示屏、打印机或其它类型的输出设备提供输出。
[0022] 如前面简单提到的,可以将许多程序模块和数据文件存储到计算机2的大容量存储设备14和RAM 9中,包括适于控制接入网络的个人计算机的运行的操作系统16,诸如来自华盛顿州莱得蒙市的微软公司的WINDOWS XP操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。特别地,大容量存储设备14和RAM 9可以存储应用程序10。应用程序10可有效地提供用于创建和编辑电子文档如包含一幅或多幅图像的文档24的功能性。根据本发明的一个实施例,应用程序10包括来自微软公司的MICROSOFT WORD文字处理应用程序。根据本发明的另一个实施例,应用程序10还包括来自微软公司的MICROSOFT POWERPOINT应用程序。也可以利用来自其它制造商的其它应用程序。例如,可以利用桌面出版程序、演示程序、和在其文档内包含有图像的任何其它类型的程序。
[0023] 应用程序10可以利用压缩算法26来帮助压缩文档24内的图像。如下面将要更详细描述的,压缩算法26可以自动地压缩文档24内的图像,以降低文档的文件大小。
[0024] 图2示出了根据本发明各方面的图像压缩系统200。如上面简单描述地,压缩算法26可为应用程序10提供压缩服务。根据一个实施例,可以将文档存储在备用存储器34中。为了便于与压缩算法进行通信,可以实现一个或多个回调例程,其在图2中被示为回调代码32。通过使用回调代码32,压缩算法26可以查询压缩文档内的一个或多个图像所必需的附加信息。
[0025] 压缩算法26可提供用于压缩文档内的图像的自动化压缩步骤,从而使文档的文件大小得以降低。文档管理器30可以向压缩算法26提供应该要压缩和/或从文档中移除的来自该文档的图像和其它内容。压缩算法26可以利用各种参数来帮助压缩过程。例如,可以利用输出设备的分辨率来确定图像是否可以缩放。例如,可以确定打印机的分辨率为220ppi,而显示屏/投影机/web/电子邮件的分辨率却可以设置为在72-192ppi不等。压缩算法26还可以确定图像是否已被剪裁。当图像已被裁剪时,已裁剪区域的像素信息通常被应用程序存储着。在压缩图像时,可以将该信息丢弃以便节约空间。也可以利用色深。色深可影响图像能够被压缩的方式。少于256色或16灰度级的图像对于JPEG压缩来说一般都不是很好的候选对象。然而,可以将具有多余色深的图像按比例缩小以减小其大小。例如,如果图像在形式上是以24位色来保存的,但是其实只包含8色,则可以将多余的颜色信息除去。压缩算法26还可以将任何非必要数据从图像中除去。例如,使用OLE客户机的复制/粘贴插入到文档中的图像可能由OLE流中的一个较小可视图像和一个24位非压缩位图组成。在压缩图片时,有可能会将该数据丢弃。数据中有一些常常是不希望移除掉的。例如,如果用户使用插入|对象(Insert|Object)来插入图像,则由于用户已明确要求将图像作为对象来插入,因此不能将OLE数据安全地丢弃。下面将提供更多细节。
[0026] 现参考图3到图7,将描述用于压缩文档内的图像的说明性过程。虽然是在压缩算法26和文字处理应用程序10的上下文中表现在此描述的各个实施例的,但是也可以利用在其文档内包含图像的其它类型的应用程序。例如,可以在演示应用程序、电子表格应用程序、绘图或计算机辅助设计应用程序等中利用在此描述的实施例。
[0027] 在阅读在此给出的例程的讨论时,应意识到,各个实施例的逻辑操作实现为:(1)在计算系统上运行的计算机实现动作序列或程序模块;和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于可实现本发明的计算系统的性能要求的选择问题。因此,所说明的并组成在此描述的各个实施例的逻辑操作在不同的时候被称作操作、结构器件、动作或模块。这些操作、结构器件、动作和模块可以以软件形式、以固件形式、以专用数字逻辑形式及其任意组合实现。
[0028] 图3示出了用于自动地压缩文档中的图像的示例性场景。包含在文档中的任何图像都是用于压缩的候选对象,以便减小文档的文件大小。可以使用各种压缩技术来压缩图像,包括但不限于:离散余弦转换(DCT)压缩、游程长度编码(RLE)压缩、Lempel-Ziv(LZ)压缩、和Lempel-Ziv-Welch(LZW)压缩。例如,JPEG图像可以使用DCT压缩来压缩;GIF图像可以使用LZW来压缩;位图图像可以使用RLE来压缩;而PNG和TIFF则可以使用LZ来压缩。取决于图像的类型可以使用任意压缩算法。
[0029] 场景300示出用户将图像插入其文档中的一个内。所插入的图像可能包含有无关数据。例如,图像可能包括在图像被插入到文档中时随其一起被复制的对象链接和嵌入(OLE)流。文档也可能是极高分辨率的文档。响应于插入图像(310),可以执行自动化压缩步骤330以便减小图像的大小。例如,图像可以被重新采样(314)以减少该图像的分辨率。可以将OLE数据从图像中去除(312),并且可以在适当的时候将该图像转换(316)成另一种格式。例如,在这种场景中,图像如果被转换为JPEG将会小得多。假设一旦图像在文档中,并且已执行了第一组自动化压缩步骤(330),用户可决定操纵该图像。例如,用户可将图像的大小调整得更小,并将非必要区域从文档中裁剪掉(318)。响应于保存文档(320),执行自动化压缩步骤340,以便基于调整大小和裁剪来压缩图像。根据图像在页面上的新大小来对其重新采样(324),并将已裁剪区域从图像中丢弃(322)。
[0030] 用户也可以关闭自动化压缩步骤。当文档中的自动化压缩特征被关闭并且用户将其文档发送给另一个用户时,该文档会维持关闭自动化压缩。
[0031] 图4说明了用于分类图像的过程。将存储在文档中的图像分类成照片和非照片。图像的分类确定要对图像执行的压缩步骤。
[0032] 在开始操作后,过程移动到操作410,在该操作410处访问图像。移动到判定操作415处,确定该图像是否是JPEG图像。当图像是JPEG图像时,过程移动到操作420处,在操作420处将图像分类为照片。当图像不是JPEG图像时,过程将转到操作425。
[0033] 在判定操作425处,确定图像是否包含多于256色。色深会影响可以压缩图像的方式。少于256色或16灰度级的图像对于JPEG压缩来说一般不是很好的候选对象。然而,可以将具有多余色深的图像按比例缩小以减小其大小。例如,如果图像在形式上是以24位色来保存的,但是其实只包含8色,则可以将多余的颜色信息从图像中除去,由此减小文件大小。
[0034] 当图像不包含256色或16灰度级时,过程转到操作430,在此处可将图像分类为非照片。当图像的确包含多余256色或16灰度级时,过程转到操作435。
[0035] 操作435可构建图像的直方图。转到判定块440处,可基于直方图的结果确定是否应将该图像分类为照片。可以使用许多不同的测试来帮助确定图像是否为照片。另外,可以调整参数和与直方图相关联的阈值。在一些情况下,会发现调整阈值/参数可以提供更好的结果。下面的讨论呈现了可以单独使用或组合使用来确定图像是否为照片的三种测试。
[0036] 第一测试确定在直方图最前面的各个小区间(top bins)中的像素比例。首先,使用最近邻插值法重新采样图像,以使该图像在其最长侧有640个像素。随后,执行三通道直方图以确定在每个色彩小区间中的像素数。计算在10个最普通的小区间中的像素比例,并且:如果少于20%的像素在最前面的10个小区间中,则该图像对于JPEG压缩来说是很好的候选对象,并且可将该图像分类为照片。
[0037] 可以将照片分类的得分指定为从零到1的值,且该值越接近于1,则图像将越可能被分类为照片。如果有少于20%的像素位于最前面的10个小区间中,则该照片分类得分=1;或者,如果有20%和80%之间的像素位于最前面的10个小区间中,则该图像分类的得分为(80-最前面各个小区间的数目的百分比)/60;或者,如果有多于80%的像素位于最前面的10个小区间中,则该图像分类的得分为0。
[0038] 第二测试确定直方图的峰值数。将峰值定义为其所具有的像素数是邻近小区间的10倍以上的小区间。计数直方图中的峰值数。所具有的峰值越少表明如果对图像进行JPEG压缩则越不可能具有伪像,并且该图像越可能被分类为照片。当具有0或1个峰值时,照片分类得分=1,而当具有更多峰值时,照片分类得分将变小。例如,当具有2个峰值时,该值可以是0.8,具有4个峰值时该值为0.6等。可以用这些值来进行试验,以确定理想的设置。
[0039] 第三测试确定已加载的小区间的数目。计数“已加载”小区间的数目。当一小区间包含像素总和的10%以上时,可认为该小区间已被加载。所具有的已加载小区间越少,则JPEG压缩将越好,同时图像也越有可能是照片。当没有已加载小区间时,图像分类得分=1,且已加载小区间越多,则图像分类得分将越少。
[0040] 可以将各种测试的结果组合来确定是否应将图像分类为照片。根据一个实施例,可使用如下等式:照片分类得分=0.7*测试1+0.05*测试2+0.25*测试3。
[0041] 如果照片分类得分>0.5,则可将图像分类为照片,并且可以压缩该图像。
[0042] 转到操作450,压缩图像。根据一个实施例,压缩系使用JPEG压缩来执行。JPEG压缩将利用影响JPEG压缩的质量并指定期望的图像质量的设置。质量设置并不是与文件大小直接成比例的。根据一个实施例,用户可以在预定约束范围内指定期望的图像质量。使用预定约束可帮助用户不会过渡降低图像的质量。下面列出了图像质量参数的相关性质。
[0043] 性质 值 近似文件大小[0044] 最小值 0
[0045] 最大值(理论上限) 100
[0046] 实践中的最佳质量(质量的改进无法超 95 5∶1过该质量设置)[0047] 没有显而易见的损失的最低质量 75 10∶1
[0048] 没有不良损失的最低质量 50 20∶1
[0049] 还可提供默认质量设置。根据一个实施例,JPEG质量设置默认为95。
[0050] 随后,过程移动到结束块,并返回以处理其它动作。
[0051] 图5示出了用于在插入操作时压缩图像的过程。在开始操作后,过程转到操作515,在操作515处将图像插入到文档中。图像可以用许多不同的方式来插入。例如,图像可以插入自文件、发送自设备、粘贴自另一个应用程序、应用图片来填充形状等。
[0052] 转换到操作520,可以将任意非必要数据从图像中除去。例如,图像可能会包含非必要的元数据。根据一个实施例,可将非必要的OLE数据从该图像中除去。
[0053] 转向判定操作525,确定是否可以将图像调色板化(图像具有8位或更低的色深)。根据一个实施例,将可以调色板化(palletized)的图像以具有索引色的PNG格式存储,但GIF文件除外,其以GIF格式来存储(530)。
[0054] 转到判定操作535,确定是否已开启自动化压缩。当自动化压缩没有被开启时,过程转到结束操作。当自动化压缩已开启时,过程转换到判定操作540,确定图像是否是错误格式。根据一个实施例,某些图像类型是不压缩的。例如,可以将GIF文件认为是错误格式,因为GIF图像被调色板化了,因此不是重新采样的好候选对象。当图像是错误格式时,过程转到结束操作。当图像不是错误格式时,过程转到判定操作545。
[0055] 在判定操作545处,确定图像是否具有非必要像素。对非必要像素的检查可确定所具有的像素是否比足以打印到所期望设备上的像素要多。期望设备可以是高分辨率设备或是低分辨率设备。根据一个实施例,图像包含可将图像伸展至设备的整个页面大小所需的像素数。例如,如果用户将具有5百万像素的图像插入到8.5”×11”的文件中,以便以220ppi来填充整个页面,则该图片应需要具有如下像素数:
(8.5”×220ppi)×(11”×220ppi)=近4.5百万个像素。
[0056] 对于与页面具有不同长宽比的图像,则图像需要保留足够的像素来填充整个页面。例如,如果图片的宽度是3000像素,高度是2000像素,并且要将该图片插入到打印格式为8.5”×11”的页面中,则可以将该图片调整大小为2805×1870。
[0057] 当不具有非必要像素时,过程移动到操作555。当具有非必要像素时,过程移动到操作550,在该操作550可自动地重新采样图片。随后,过程移动到判定操作555。
[0058] 在判定操作555处,确定图像是否已被分类为照片。使用JPEG压缩可最好地压缩照片,但是JPEG可能会在非照片图像上引入伪像。根据一个实施例,默认地将不是JPEG的图像转换为PNG(除了GIF文件保持为GIF外)。然而,对于照片,PNG压缩是低效率的。当图像被分类为照片时,过程移动到操作560,在该操作处将照片转换成JPEG。
[0059] 随后,过程移动到结束块,并返回以处理其它动作。
[0060] 图6示出了用于在保存时压缩的过程。在开始操作后,过程转到操作610访问图像。移动到判定操作620,确定图像是否含有透明度信息。当图像具有透明度信息时,图像可能不是用于压缩的好候选对象,因为透明度信息在压缩时可能会丢失。因此,根据一个实施例,当图像包含透明度信息时,过程转到结束块。当图像不包含透明度信息时,过程转到判定操作630。
[0061] 判定操作630可确定图像是否已被剪裁。根据一个实施例,当图像上已执行了剪裁操作时,会在该图像上设置“脏”标记以显示该图像已被剪裁了。在移除已剪裁区域时,脏标记将被重新设置。
[0062] 在图像已被剪裁时,过程转到操作640,丢弃已剪裁区域。当图像没有被剪裁时,过程转到判定操作650。
[0063] 判定操作650可确定图像是否已被调整大小。类似于剪裁操作,如果在图像上执行了调整大小的操作,则也会在该图像上设置“脏“标记,以显示该图像已被修改了。在重新采样图像时,会重新设置脏标记。
[0064] 当图像已被调整大小时,将重新采样(操作660)该图像,以便提供足够的像素分辨率来以较高的质量按其当前大小来打印图像。
[0065] 当还没有对图像调整大小时,过程转到结束操作,并返回以处理其它动作。
[0066] 图7说明了用于在用户调用文档时压缩该档案中的图像的过程。一般而言,用户调用文档时的压缩过程是上面描述的步骤的组合。
[0067] 在开始操作后,过程转到操作705,访问文档中的图像。
[0068] 移动到操作710,从图像中移除任何附加数据。例如,图像可能包括OLE数据。根据一个实施例,当用户在所选对象上运行压缩图像时,如果用户选择从单个画面中去除OLE数据,则OLE流将被去除。或者,如果用户在文档中的所有图像上运行压缩图像,则在认为移除是安全的时候移除OLE流。可以将被认为是可安全移除的OLE类型清单存储在列表中,或以其它形式存储。
[0069] 移动到判定操作715,确定图像是否含有透明度信息。当图像具有透明度信息时,图像可能不是用于压缩的好候选对象,因为透明度信息在压缩时可能会丢失。当图像不包含透明度信息时,过程转到结束操作。当图像不包含透明度信息时,过程转到判定操作720。
[0070] 判定操作720可确定图像是否已被剪裁。在图像已被剪裁时,过程转到操作725,丢弃已剪裁区域。当图像没有被剪裁时,过程转到判定操作730。根据一个实施例,剪裁确定还会考虑多幅图像参考相同的源并以不同的方式被剪裁的情况。在这种情况下,当已剪裁信息不被文档中的任何一个实例需要时,将其从源处丢弃。
[0071] 判定操作730确定图像是否可以被压缩。如果图像已经被压缩,则将已被压缩的图像作上标记,并将目标输出模式作为该图像的特性来保存。一旦图像已被压缩,则在目标输出模式已被改变并且需要更积极的压缩时,该图像将被再次压缩。随后,目标输出模式特性将被更新。根据一个实施例,不会压缩大小小于100kb的图像。尽管在一个实施例中使用了100kb,但可以按照需要来设定这个设置或者将其忽略。当图像不能够被压缩时,过程转到结束块。当图像能够被压缩时,过程转到操作735。
[0072] 判定操作735确定图像是否可以被缩放。如所需输出设备确定图像包含额外像素时,其可以被缩放。例如,打印机可以使用220ppi的分辨率,而显示屏/投影机/web可以使用150ppi,电子邮件可以使用96ppi。可以选择不同的分辨率。当图像可以被缩放时,过程移动到操作740,重新采样图像。当图像不可以被缩放时,过程移动到判定操作745处。
[0073] 判定操作745可确定该图像是否为照片。当图像被分类为照片时,过程移动到操作750,将图像以所确定的质量设置进行JPEG压缩。当图像未被分类为照片时,过程移动到操作755,在该步骤755处可以向用户提供警告。该警告可以指示图像将被压缩,以及他们是否愿意接受该变化。
[0074] 转换到判定操作760处,确定用户是否会接受该变化。当用户接受该变化时,过程移动到操作765,在该操作765处可将文档与更新后的图像一起保存。当用户不接受该变化时,过程移动到操作770,在该操作770处会将该变化丢弃。
[0075] 随后,过程移动到结束操作,并返回以处理其它动作。
[0076] 图8示出了示例性压缩对话框。对话框810说明了压缩图片对话框,而对话框820则说明了压缩选项对话框。
[0077] 文件大小比较(812)可向用户提供对压缩后所节约的空间的估计。计算具有图像的文档的文件大小使用单独的线程迭代通过该文档中的这些图像。在生成文件大小的同时,将向用户提供诸如“处理中…”之类的消息。
[0078] 用户通过选择选项按钮816并在对话框820中作出任何期望的变化即可调整压缩设置。这些设置可以被维持,以便在构建新文档时实行。
[0079] 指示自动压缩的选项(822)被嵌入在文档中,以便在将该文件与其它用户共享时可保持这些设置。
[0080] 也可以存储目标输出模式824。删除已剪裁区域的选项826可指定是否丢弃图像的已剪裁区域。移除非必要数据的选项828可指定是否丢弃额外数据。
[0081] 上面的描述、示例和数据可提供对产品以及组合本发明的使用的完全描述。由于可以得到本发明的许多实施例,而不会偏离本发明的精神和范围,因此本发明在于后面所附的权利要求书。