AspJpeg对象

AspJpeg是主对象,它封装了该组件的大多数的功能。可以用以下方式创建该对象:

VB Script:

Set Jpeg = Server.CreateObject("Persits.Jpeg")

VB:

Dim Jpeg As New ASPJPEGLib.ASPJpeg

C#:

ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
属性方法
AlphaExists
AlphaPixels
Binary
Canvas
Expires
Gif
Height
Interpolation
OriginalComponents
OriginalFormat
OriginalHeight
OriginalResolutionX
OriginalResolutionY
OriginalWidth
Pixels
PNGOutput
PreserveAspectRatio
PreserveICCProfile
PreserveMetadata
Progressive
Quality
RegKey
ResolutionX
ResolutionY
TiffIndex
TransparencyColor
TransparencyColorExists
Version
Width
WindowsDirectory
AddMetadataItem
Adjust
AlphaToImage
ApplyFilter
Close
Crop
DrawImage
FlattenAlpha
FlipH
FlipV
Grayscale
LogonUser
New
Open
OpenBinary
OpenInfo
OpenInfoBinary
RemoveAlpha
ReplaceColor
Rotate
RotateL
RotateR
Save
SaveUnique
SendBinary
Sepia
SetAlpha
Sharpen
ToGrayscale
ToRGB

ASPJpeg属性

AlphaExists As Boolean (read-only)

该Alpha通道,如果存在的话,只有当图像保存为PNG格式的时候(属性PNGOutput被设置为True)才有效果。

该属性在v2.1版中引入。

参见:第十章:PNG输出

AlphaPixels (X As Long, Y As Long) As Integer (read/write)

X坐标必须在范围(0,width-1)内,Y坐标必须在范围(0,height-1)内。

该属性在v2.1版中引入。

参见:第十章第三节:Alpha通道管理

Binary As Variant (read-only)

返回代表一个缩略图的字节的二进制数组。在把缩略图作为大二进制对象保存在数据库中的时候,这个属性很有用。如果缩略图的终极目的是保存在一个数据库表中,这个属性可以用来替代Save方法和SaveBinary方法。

参见:第二章第四节:输出到内存

Canvas As Object (read-only)

返回Canvas对象,它带有自己的子对象Canvas.Font、Canvas.Pen和Canvas.Brush,能够在一个图像上书写并绘画。

参见:第五章:绘画和打字

Expires As Date (read-only)

返回该组件的期满日期。如果安装了一个有效的注册码,会返回9/9/9999

参见:第一章五5节:基满机制

Gif As Object (read-only)

返回GIF对象,它管理了GIF输出。该属性在v2.0版中引入。

参见:第九章:GIF输出

Height As Long (read/write)

指定一个新图像的高度(以像素计)。只能在打开一个图像之后调用它,可以通过Open方法或OpenBinary方法打开一个图像。

副作用:如果PreserveAspectRatio被设置为True,改变这个属性会自动改变Width的值,以保持图像原始的宽高比。

参见:第二章第1节:缩略图创建步骤

Interpolation As Long (read/write)

指定一个图像缩放算法。下面的值是当前支持的:0(最邻近)、1(两次线性,默认值)、2(两次立方)。

最邻近(NN)是最快速的算法,但是提供了最品质的缩略图。

两次线性方法提供了较好的缩略图品质,但是耗时大约是NN的两倍。

两次立方算法的耗时是两次线性慢的两倍,是最邻近的四倍,但是应该是提供了最佳的品质。然而,在多情况中,相比之两次线性,两次立方只提供了微乎其微的、略可察觉的提升。

默认值:1(两次线性)

参见:第四章第1节:缩放算法

OriginalComponents As Long (read-only)

返回图像的原始颜色成分数:RGB图像返回3,CMYK图像返回4,灰度图像返回1。这个图像不会受调用ToRGB方法的影响。

OriginalFormat As String (read-only)

返回当前打开图像的格式。可能的值有:JPEGGIFPNGBMPTIF,分别针对JPG格式、GIF格式、PNG格式、BMP格式和TIFF格式。

OriginalHeight As Long (read-only)

返回原始图像的高度(以像素计)。只能在打开一个图像之后调用它,可以通过Open方法或OpenBinary方法打开一个图像。使用该属性以保持一个图像原始的宽高比。

参见:第二章第1节:缩略图创建步骤

OriginalResolutionX As Single (read-only)

沿着x轴返回原始图像的分辨率,如果该属性返回1,则分辨率可能够通过一个EXIF标签读取,或者不能读取(在后一种情况中,它必须假定是72DPI)。

参见:第八章第2节:图像分辨率

OriginalResolutionY As Single (read-only)

沿着y轴返回原始图像的分辨率,如果该属性返回1,则分辨率可能够通过一个EXIF标签读取,或者不能读取(在后一种情况中,它必须假定是72DPI)。

参见:第八章第2节:图像分辨率

OriginalWidth As Long (read-only)

返回原始图像的宽度(以像素计)。只有在利用Open方法或OpenBinary方法打开一个图像之后才可以调用它。该属性用来保持图像的原始宽高比。

参见:第二章第1节:缩略图创建步骤

Pixels (X As Long, Y As Long) As Variant (read/write)

设置或者取回一个由基于0的(x,y)坐标指定的个别像素的颜色成分。该属性返回一个不同的颜色成分数组,或者给它分配一个不同的颜色成分数组。数组的长度必须匹配图像的颜色空间(RGB模式需要3项、CMYK模式需要4项、灰度模式只需要1项)。X坐标必须在范围(0,width-1)内,Y坐标必须在范围(0,height-1)内。这是AspJpeg对象的默认属性。

参见:第八章第3节:访问个别像素

PNGOutput As Boolean (read/write)

如果设置为True,图像会被保存为PNG格式而不是JPEG格式。如果有Alpha通道的话,Alpha通道会被保留。默认值是False

该属性在v2.1版中引入。

参见:第十章:PNG输出

PreserveAspectRatio As Boolean (read/write)

默认值是False。如果设置为True,将在属性width和属性height之间建立链接,从而改变一个维度将自动改变另一个维度,以保持图像的原始宽高比。

参见:第二章第1节:缩略图创建步骤

PreserveICCProfile As Boolean (read/write)

默认值是False。如果设置为True,将在缩略图中保留原始图像的ICC配置文件。必须在调用Open方法或OpenBinary方法之前设置它。该属性在v2.4版中引入。

参见:第七章第5节:元数据保护

PreserveMetadata As Boolean (read/write)

默认值是False。如果设置为True,将在缩略图中保留原始图像的Exif元数据和IPTC元数据。必须在调用Open方法或OpenBinary方法之前设置它。该属性在v1.9版中引入。

参见:第七章第5节:元数据保护

Progressive As Boolean (read/write)

默认值是False。如果设置为True,将生成一个渐进式Jpeg图像,亦即,在它从网上下载的过程中,会渐进地逐步锐化。目前,Netscape是唯一的支持逐步呈现渐进式Jpeg图像的主流浏览器,其它浏览器只能在整个图像完全下载完之后显示完整的图像。

参见:第八章第4节:渐进式Jpeg文件

Quality As Long (read/write)

指定压缩损失程度。影响结果得到的图像的品质和字节大小。

可接受一个0到100之间的整型数,0是最低品质、最高损失、最小的图像字节大小。这个值越高,图像的品质越好,文件的字节大小也越大。

该属性默认被设置为80,它提供了接近最优的品质和文件字节大小的组合。

参见:第四章第5节:调整图像压缩率

RegKey As String (write-only)

指定一个注册码。如果该属性没有设置,AspJpeg会在系统注册表中寻找一个注册码。

参见:第一章第5节:期满机制

ResolutionX As Single (read/write)

沿着X轴,在DPI中指定一个新的图像分辨率。

参见:第八章第2节:图像分辨率

ResolutionY As Single (read/write)

沿着Y轴,在DPI中指定一个新的图像分辨率。

参见:第八章第2节:图像分辨率

TiffIndex As Long (write-only)

指定一个基于1的图像索引,以从一个多页的TIFF文件中打开一个图像。为了让该属性生效,必须在调用Open方法或OpenBinary方法之前调用它。默认值是1。只有当被打开的图像是TIFF格式的时候才有用。你可以通过Info集合,在一个TIFF图像中找到页数。

参见:第七章第4节:TIFF支持

TransparencyColor As Long (read-only)

如果当前打开的图像是一个GIF图像,带有透明色,该属性以一个长整型数,&H00rrggbb的格式返回这个透明颜色。如果该图像没有一个透明色,该属性将抛出一个错误。请务必在读取图像的透明色之前先检查属性TrasparencyColorExists。该属性在v1.6版中引入。

参见:第六章第2节:GIF透明度

TransparencyColorExists As Boolean (read-only)

如果当前打开的图像是带透明色的GIF图像,则返回True。否则返回False。在试图访问TransparencyColor之前需要检查该属性。该属性在v1.6版中引入。

参见:第六章第2节:GIF透明度

Version As String (read-only)

以格式"1.6.0.0"返回组件的当前版本号。

Width As Long (read/write)

指定一个新图像宽度(以像素计)。必须在调用Open方法或OpenBinary方法之前设置它。

副作用:如果PreserveAspectRatio被设置为True,改变这个属性会自动改变Height的值,以保持图像原始的宽高比。

参见:第二章第1节:缩略图创建步骤

WindowsDirectory As String (read-only)

返回当前机器的Windows目录,比如说“C:\Windows”。该属性常用来计算字体文件的路径,是PrintTextEx方法需要字体文件。

该属性在v1.8版中引入。

参见:第五章第3节:利用PrintTextEx的高级文本绘制

ASPJpeg方法

Sub AddMetadataItem(ID As String, Value As String)

在当前图像中添加或者替代一个IPTC条目。ID必须是来自第七章第4节:IPTC项目列表表格的IPTC字须名。Value是要插入到字段中的字符串。Value不能长于1000个字符。

要想使用该方法,在打开图像之前,必须把属性PreserveMetadata设置为True

ID被设置为“IptcCopyrighted”时,Value必须被设置为“True”或者“False”。

自v2.0.0.1版以后,ID也可以被设置为“IptcKeywordsAdd”,它添加了一个新的“IptcKeywords”条目,而不是替换掉已有的条目。自v2.1版以后,ID还可以被设置为“IptcKeywordsRemove”,它删除了所有已有的关键词,从而可以指定整个关键词新集合。

该方法在v2.0版中引入。

参见:第七章第6节:元数据编辑

Sub Adjust(Function As Long, Value As Double)

一个多功能的方法,用来调整一个RGB图像的亮度、对比度和饱和度。

Function指定了操作代码:1用于亮度、2用于对比度、3用于饱和度。Value指定了操作专用的值:对于亮度和饱和度,值在[-1,1]范围内,对于对比度,值在[0.001,5]的范围内。

该方法在v1.7版中引入。自从v2.6版,该方法被废弃了,请使用ApplyFilter方法来代替它。

参见:第八章第5节:亮度、对比度、饱和度

Sub AlphaToImage()

用Alpha通道各自的值替换掉当前图像中每个像素的颜色值。因此,Alpha通道变成一个在它自己的右边的图像(在灰度颜色空间中。)如果一个图像的Alpha通道必须绘制上去,这个方法就很有用。如果图像没有Alpha通道,该方法将抛出一个异常。

该方法在v2.1版中引入。

参见:第十章第3节:Alpha通道管理

Sub ApplyFilter(FilterID As Long, Param1 As Double, Optional Param2)

实现几种常见的图像滤镜,比如说亮度、对比度、模糊,等等。FilterID指定了使用哪种滤镜。Param1Param2是滤镜专用的参数值。第八章第6节讲解了所有当前可用的滤镜、它们的参数在和输出示例。

该方法在v2.6版中引入。

参见:第八章第6节:滤镜

Sub Close()

关闭一个文件。在销毁掉AspJpeg对象的时候,会自动调用该方法,所以你不需要显式调用它,除非立即需要释放文件处理(比如说,你需要删除这个文件)。

Sub Crop(x0 As Long, y0 As Long, x1 As Long, y1 As Long)

从缩略图中剪裁掉边缘。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参数(x0,y0)和参数(x1,y1)是在缩略图内部你想要裁剪的图像的左上角和右下角的坐标。

参见:第四章第3节:图像裁剪

Sub DrawImage(X As Long, Y As Long, Picture As ASPJpeg, Optional Opacity = 1, Optional TranspColor, Optional TranspDeviation = 0)

已废弃。与Canvas.DrawImage方法相同。支持它们只是为了向后兼容。

Sub FlattenAlpha(Color As Long)

把当前图像的像素和指定的背景色Color组合起来,按照当前的Alpha通道,并删除当前的Alpha通道。如果图像没有Alpha通道不就会有效果。在将PNG图像转换成JPEG格式的时候,该方法很有用。

该方法在v2.7版中引入。

参见:第十章第3节:Alpha通道管理

Sub FlipH()

水平翻转产生的缩略图。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参见:第四章第4节:图像翻转和旋转

Sub FlipV()

垂直翻转产生的缩略图。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参见:第四章第4节:图像翻转和旋转

Sub Grayscale(Method As Long)

把一个图像变成灰度模式。Method指定了转换的算法。有效值:0(减饱和度)、1(建议的算法)、2(对方法1作稍许变化)。

参见:第四章第6节:灰度转换

Sub LogonUser(Domain As String, Username As String, Password As String, Optional Flag )

模仿一个任意的用户帐户。当要把一个图像保存到远端驱动器或者从远端驱动器中打开图像的时候,使用该方法用以避免“Access Denied”错误。

如果Domain是空的,将使用本地计算机以验证指定的用户名和密码。

视情况使用Flag参数,一般情况下不建议使用它。

Sub New(Width As Long, Height As Long, Optional Color )

用指定的宽度和高度创建一个空白图像。关闭上一个打开的图像,如果有的话。在创建一个空白“画布”用来绘制图形、文字和其它图像的时候,这个方法很有用。Color指定了背景色,以HTML格式的十六进制格式,比发说&HFFE055。默认是0(黑色)。

参见:第六章第1节:图像绘制

Sub Open(Path As String)

打开一个JPEG图像以重设尺寸。Path必须是一个指向图像的物理路径。

参见:第二章第1节:缩略图创建步骤

Sub OpenBinary(ImageBlob As Variant)

Open方法一样,但是是从一个二进制内存源(比如说一个ADO记录集)中打开图像,而不是从文件中打开图像。使用该函数以对位于数据库中,作为大二进制对象的图像调整尺寸。

参见:第二章第3节:从内存中打开图像

Function OpenInfo(Path As String) As Info

废弃的EXIF和IPTC元数据,来自一个用Path指定的图像。返回一个Info对象的实例,它是一个元数据字段的集合。如果图像没有包含元数据,该集合就会是空的。

参见:第七章:元数据

Function OpenInfoBinary(ImageBlob As Variant) As Info

OpenInfo方法相同,但是图像是从二进制内存源中打开。

参见:第六章:画中画

Sub RemoveAlpha

从图像中移除当前的Alpha通道。如果图像没有Alpha通道,就什么也不做。

该方法在v2.1版中引入。

参见:第十章第3节:Alpha通道管理

Sub ReplaceColor(OldColor As Long, NewColor As Long)

向所有带有给定颜色OldColor的像素分配颜色NewColor。该旧颜色和新颜色可以用常整型数字指定,带有作为标识的Hex FF的8字节集合(&HFFxxxxxx),比如说&HFFF0000(红色),&HFF00FF00(绿色),等等。该方法在v1.6.版中引入。

Sub RotateAngle As Single, Color As Long)

把图像旋转一个任意角度,角度用Angle指定(用degree计算)。一个正数指定了一个逆时针旋转,而一个负数则是顺时针旋转。Color指定了由旋转产生的四个三角形角落的填充颜色。

该方法导致属性Width和属性Height增加,因为图像的画布在水平方向和垂直方向上扩展了,以适应倾斜的图像。该方法还给图像添加了一个Alpha通道,使图像的四角区域完全透明。要想利用Alpha通道,该旋转过的图像必须保存为PNG格式(那属性PNGOutput必须设置为True。)

该方法在v2.3版中引入。

参见:第十章第4节:为图像旋转使用PNG格式

Sub RotateL

把图像逆时针旋转90度。该方法还导致属性Width和属性Height互相交换值。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参见:第四章第4节:图像翻转和旋转

Sub RotateR

把图像顺时针旋转90度。该方法还导致属性Width和属性Height互相交换值。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参见:第四章第4节:图像翻转和旋转

Sub Save(Path As String)

使用用各种属性指定的参数重置当前打开图像的尺寸。把作为结果的图像缩略图保存到一个用Path指定的路径。如果带该名称的文件已经存在,则它会被覆盖掉。

参见:第二章第1节:缩略图创建步骤

Function SaveUnique(Path As String) As String

Save方法相同,但是如果用Path指定的文件已经存在了,它会生成一个独一无二的文件名。通过在文件名后面追加带有小括号的数字,比如说image(1).jpg、image(2).jpg,等等,生成一个独一无二的文件名,以避免覆盖已有的文件。

返回所保存的图像的文件名(不带有路径)。

该方法在v1.7.版中引入。

Sub SendBinary(Optional ContentDisposition)

使用用各种属性指定的参数重置当前打开的图像的尺寸。通过内部调用Response.BinaryWrite,把作为结果的图像直接发送给浏览器。自动把Content-Type头设置为“image/jpeg”。

如果设置了ContentDisposition,还会发送用该参数指定的“Content-Disposition”头。一个典型的值是:

"filename=image_name.jpg"

或者

"attachment;filename=image_name.jpg"

你只可以在ASP/IIS环境中使用该方法。

参见:第二章第2节:直接把缩略图发送到浏览器

Sub Sepia(Hue As Double, Contrast As Double)

向一个图像应用“Sepia”滤镜,使一个图像看起来像旧照片。Hue控制了输出图像的棕褐色色调。建议的范围是25到60。Contrast指定了对比度调整的程度。建议的范围是1.2到1.5。

该方法在v1.6版中引入。

参见:第四章第7节:Sepia滤镜

Sub SetAlpha(Image As ASPJpeg, Inverse As Boolean)

为当前图像设置Alpha通道。Image必须是AspJpeg对象的另一个实例。它必须在灰度颜色空间内。要想把图像转换成灰度模式,请使用ToGrayscale方法。Image的维度必须匹配当前图像。

如果Inverse的值是False,则Image的像素值将直接使用,以作为Alpha通道(0对应于完全透明,255对应于完全不透明)。如果InverseTrue,值反过来。

如果ImageNothing(空缺),将创建一个Alpha通道,它的所有值都是255(如果InverseTrue,则所有值都是0)。

一个Alpha通道只有在图像保存为PNG格式的时候才有影响(属性PNGOutput设置成True)。

该方法在v2.1版中引入。

参见:第十章第3节:Alpha通道管理

Sub Sharpen(Radius As Double, Amount As Double)

锐化一个图像。Radius指定了围绕每个像素的扫描半径。该参数通常被设置为1或2。Amount指定了锐化度(以百分数%计值)。该参数必须大于100。要想让这个方法生效,你必须在调用.Save方法、.SendBinary方法或者引用属性.Binary之前调用它。

参见:第四章第2节:图像锐化

Sub ToGrayscale(Method As Long)

把图像转换成灰度颜色空间(1字节每像素)。Method指定了转换的算法。有效值:0(减饱和度)、1(建议的算法)、2(对方法1作稍许变化)。与Grayscale方法不同,该方法把每像素的字节数减少到1。对于Alpha通道管理,这个方法很有用。

该方法在v2.1版中引入。

参见:第十章第3节:Alpha通道管理 

Sub ToRGB

把一个CYMK模式的图像转换成RGB颜色空间。如果图像不是CMYK图像,它就什么也不会做。使用该方法为CMYK图像创建一个Web可浏览的缩略图。注意,在设置新的WidthHeight之后调用该方法效率更高。

注意,从v1.7版以后,该方法还可以把灰度模式的图像转换成RGB模式。

参见:第八章第1节:CMYK到RGB的转换

如果你喜欢这篇文章,敬请给站长打赏↑

除特别注明外,本站所有文章均为本站站长原译,转载请注明出处。