Gif对象

Gif对象用来创建、打开、缩放、管理和保存Gif图像。这个对象在v2.0版中引入,在第九章:GIF输出中有详细讲解。

属性方法
Binary
BrushColor
BrushSolid
CurrentFrame
Delay
DisposalMethod
FontAlign
FontFamily
FontRotation
FontSize
FontSpacing
FontWidth
FrameCount
FrameHeight
FrameOffsetX
FrameOffsetY
FrameToSave
FrameWidth
Height
Loops
PaletteItem
PaletteSize
PenColor
PenWidth
Pixels
Quantization
TranspColor
TranspColorSet
Width
AddFrame
AddImage
Clear
DrawArc
DrawBar
DrawCircle
DrawEllipse
DrawLine
DrawPie
DrawQuad
DrawRoundRect
FindClosestColor
MoveFrame
Open
OpenBinary
PrintText
PrintTextEx
RemoveFrame
Resize
Save
SaveUnique
SendBinary
SetPalette
SetStockPalette

Gif属性

Binary As Variant (read-only)

返回一个二进制字节数组,代表一个输出的GIF图像。这个属性可以用来在数据库中把图像保存为BLOB对象。

参见:第九章:GIF输出

BrushColor As Long (read/write)

为当前帧指定了一个笔刷颜色索引。只影响条纹、圆形、椭圆形、四边形和饼形的内部区域,除非BrushSolid被设置为false

参见:第九章第2节:AspJpeg的GIF输出支持

BrushSolid As Boolean (read/write)

为当前帧指定笔刷是实心的,还是透明的。默认值是true(实心的)。

参见:第九章第2节:AspJpeg的GIF输出支持

CurrentFrame As Long (read/write)

在一个GIF图像内部返回或指定当前帧。所有绘制操作都是在当前帧上实施的。帧索引是基于1的数字,必须在1到FrameCount之间。

参见:第九章第2节:AspJpeg的GIF输出支持

Delay As Long (read/write)

在一个会动的GIF中,返回或指定当前帧的延迟(以百分之一秒计数)。默认值是100(1秒钟)

参见:第九章第2节:AspJpeg的GIF输出支持第九章第7.2节:其它动画管理属性

DisposalMethod As Long (read/write)

控制在一个会动的GIF中替换每一帧的方式。有效的值是:

  1. 把当前帧留在原地,在它顶部绘制下一个图像。这是默认方法。
  2. 画布必须恢复到背景色,然后呈现下一个图像。
  3. 画布必须恢复到它的先前的状态,然后绘制当前图像。

参见:第九章第4节:使用外部图像作为画框第九章第7.2节:其它动画管理属性

FontAlign As Long (read/write)

指定用于PrintTextEx方法的文本对齐方式。有效的值是:0(向左对齐)、1(向右对齐)、2(居中对齐)、3(两边分散对齐)。如果指定了一个非0值,则还必须指定FontWidth属性。这个属性不会影响PrintText方法。

参见:第九章第2节:AspJpeg的GIF输出支持

FontFamily As String (read/write)

指定一个字体家族,比如说“Arial”或“Courier New”。如果没有指定该属性,或者如果指定的字体找不到,就会使用一个系统默认字体。这个属性必须与PrintText方法配合使用。它不会影响PrintTextEx方法。

参见:第九章第2节:AspJpeg的GIF输出支持

FontRotation As Long (read/write)

指定文本文件旋转角(以角度数计,旋转是逆时针的),针对PrintText方法和PrintTextEx方法。默认值是0(水平)

参见:第九章第2节:AspJpeg的GIF输出支持

FontSize As Long (read/write)

指定字体大小,针对PrintText方法和PrintTextEx方法,以像素计。默认值是24。

参见:第九章第2节:AspJpeg的GIF输出支持

FontSpacing As Long (read/write)

指定针对PrintTextEx方法的行间距调整(以像素计)。一个正数值增加了默认行间距,一个负数值减少了默认行间距。

参见:第九章第2节:AspJpeg的GIF输出支持

FontWidth As Long (read/write)

指定一个绘制文本字符串的区域的宽度,用于PrintTextEx方法。如果必要的话,激活包裹的单词 。如果属性FontAlign被设置为一个非零值,就必须设置这个属性。

参见:第九章第2节:AspJpeg的GIF输出支持

FrameCount As Long (read-only)

返回GIF图像中的总帧数。

参见:第九章第2节:AspJpeg的GIF输出支持

FrameHeight As Long (read/write)

返回或指定当前帧的高度,以像素计。

FrameOffsetX As Long (read/write)

返回或指定当前帧的水平偏移,以像素计。

FrameOffsetY As Long (read/write)

返回或指定当前帧的垂直偏移,以像素计。

FrameToSave As Long (read/write)

默认值是0。如果设置为一个有效的基于1的帧索引,指令在调用保存方法时,Gif对象只保存指定的帧。这个属性可用于调试错误。

参见:第九章第7.3节:保存单个帧

FrameWidth As Long (read/write)

返回或指定当前帧的宽度,以像素计。

Height As Long (read/write)

返回或指定一个GIF图像的完整的高度,以像素计。这个属性不会影响图像内独立帧的尺寸。如果一个图像还没有帧,第一次调用AddFrameAddImage会设置以后要加入的帧的Height

参见:第九章第4节:使用外部图像作为画框

Loops As Long (read/write)

返回或指定一个会变的GIF在停止之前的运行它的序列的次数。默认值是0,意味着这个序列的运行是无限期的。

参见:第九章第7.2节:其它动画管理属性

PaletteItem(Global As Boolean, Index as Long) As Long (read/write)

这个参数化的属性返回或指定调色板项目中的一个用Index指向的、用Global指定的一个RGB成分。如果Globaltrue,就使用全局调色板,否则使用当前帧所用的局部调色板。Index必须是一个界于0到PaletteSize * 3 -1之间的整数。举个例子,PaletteItem(True, 4)引用全局调色板第二条目的绿色成分。

参见:第九章第5节:调色板管理

PaletteSize(Global As Boolean) As Long (read/write)

这个参数化的属性返回或指定了调色板中的条目数。如果Globaltrue,就使用全局调色板,否则使用当前帧所用的局部调色板,把一个调色板的大小设置为零,能有效地删除这个调色板。

参见:第九章第5节:调色板管理

PenColor As Long (read/write)

为当前帧指定铅笔的颜色索引。这个属性会影响所有的绘图方法,以及PrintText方法和PrintTextEx方法。

参见:第九章第2节:AspJpeg的GIF输出支持

PenWidth As Long (read/write)

为当前帧指定铅笔的宽度。这个属性会影响所有的绘图方法。

参见:第九章第2节:AspJpeg的GIF输出支持

Pixels(Col As Long, Row as Long) As Long (read/write)

这个参数化的属性返回或设置在当前帧内,一个由(ColRow)指定的像素的颜色索引。

Quantization As Long (read/write)

在调用AddImage方法时,控制真彩色转换成256色的品质。有效的值是从1到30,1是最高的品质,但是最慢的速度。默认值是20,它提供了速度和品质之间的充分平衡。为了性能考虑,不建议把这个属性值设置为任何低于10的值。

参见:第九章第4节:使用外部图像作为画框

TranspColor As Short (read/write)

针对当前帧,返回或指定透明色的索引。设置这个属性具有一个副作用是会把TranspColorSet属性设置为true

参见:第九章第6节:透明度

TranspColorSet As Boolean (read/write)

如果当前帧具有相关于它的透明色索引,就返回true。这个索引本身是通过TranspColor属性返回的。把这个属性设置为false会有效地从当前帧中删除一个透明色。

参见:第九章第6节:透明度

Width As Long (read/write)

返回或指定一个GIF图像的整个宽度,以像素计。这个属性不会影响图像内独立帧的尺寸。如果一个图像还没有帧,第一次调用AddFrameAddImage会设置以后要加入的帧的Width

参见:第九章第4节:使用外部图像作为画框

Gif方法

Sub AddFrame(Width As Long, Height As Long, OffsetX As Long, OffsetY As Long )

用指定的宽度高度和偏移,向图像添加一个空帧。这个新加入的帧变成当前帧,并用颜色索引0填充。它没有局部调色板。新的帧加入到动画序列的末尾。

如果这是图像中的第一帧,则图像的整个宽度和高度会根据这个新帧的值分配。

参见:第九章第2节:AspJpeg的GIF输出支持

Sub AddImage(Image As ASPJpeg, OffsetX As Long, OffsetY As Long )

添加一个用Image填充的新帧,Image是一个AspJpeg对象的实例。这个方法实施了从真彩色到256色的转换。转换的速度和品质由Quantization属性决定。

这个新帧被分配为一个256色的局部调色板,转换自这个图像,以实现最佳品质。

参见:第九章第4节:使用外部图像作为画框

Sub Clear()

从图像中删除所有帧一个空图像是不能在上面绘制、缩放或保存的。

Sub DrawArc(X As Long, Y As Long, Radius As Long, StartAngle As Long, ArcAngle As Long)

在当前帧上,以(X, Y)为中心绘制一个圆。圆弧的半径用Radius指定(以像素计)。StartAngle指定了圆弧开始点的角度(以角度数计),而ArcAngle指定了圆弧的跨度,以逆时针为方向。使用当前的铅笔。圆弧是不可填充的。

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawBar(Left As Long, Top As Long, Right As Long, Bottom As Long )

Draws a rectangle specified by the coordinates of its upper-left and lower-right corners (in pixels) on the current frame using the current pen and brush.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawCircle(X As Long, Y As Long, Radius As Long)

Draws a circle specified by its center coordinates and radius (in pixels) on the current frame using the current pen and brush.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawEllipse(Left As Long, Top As Long, Right As Long, Bottom As Long )

Draws an ellipse specified by the coordinates of its bounding rectangle (in pixels) on the current frame using the current pen and brush.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawLine(x1 As Long, y1 As Long, x2 As Long, y2 As Long )

Draws a line specified by the coordinates of its starting and ending points (in pixels) on the current frame using the current pen.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawPie(X As Long, Y As Long, Radius As Long, StartAngle As Long, EndAngle As Long)

Draws a pie-shaped wedge with a center in (X, Y) on the current frame. The radius is specified by Radius (in pixels). StartAngle specifies the angle (in degrees) of the arc's starting point, andEndAngle specifies the arc's ending point, in the counterclockwise direction. Uses the current pen and brush.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawQuad(X1 As Long, Y1 As Long, X2 As Long, Y2 As Long,X3 As Long, Y3 As Long,X4 As Long, Y4 As Long )

Draws a quadrilateral specified by the coordinates of its 4 corners on the current frame using the current pen and brush.

参见:第九章第2节:AspJpeg的GIF输出支持

Sub DrawRoundRect(Left As Long, Top As Long, Right As Long, Bottom As Long, CornerWidth As Long,CornerHeight As Long )

Draws a rectangle with rounded corners on the current frame using the current pen and brush. The rectangle is specified by the coordinates of its upper-left and lower-right corners (in pixels). The corners are rounded by an ellipse with the width and height specified by CornerWidthandCornerHeight.

参见:第九章第2节:AspJpeg的GIF输出支持

Function FindClosestColor(Global As Boolean, R As Short, G As Short, B As Short ) As Short

Scans the specified palette and looks for a color closest to the RGB values specified, and returns its index. If Global is true, the global palette is scanned, otherwise the local palette pertaining to the current frame is scanned.

参见:第九章第7.4节:找到一个最切近的颜色

Sub MoveFrame(OriginalIndex As Long, DesiredIndex As Long)

Moves the frame specified by the first argument to a new location specified by the 2nd argument. If the current frame is affected by the move, the CurrentFrame property will change to reflect the new position of the current frame.

参见:第九章第7.1节:其它帧管理方法

Sub Open(Path As String)

Opens a GIF image from a file. Populates all the frames and assigns all the Gif object properties. Path must point to a GIF file, any other format will be rejected.

参见:第九章第3节:GIF图像缩放

Sub OpenBinary(Image As Variant)

Open方法相同,但是从一个二进制源打开一个GIF图像,比如说从一个记录集中打开。Image必须是一个包含了一个GIF图像的字节安全数组。所有的其它格式都会被拒绝。

参见:9.3节:GIF图像缩放

Sub PrintText(X As Long, Y As Long, Text As String, Optional Language = 1 )

使用当前的字体和铅笔颜色,直接从(XY)开始打印Text文本。

Language is described here

这个方法有很多限制,已经过时了。一个更通用的方法,PrintTextEx,在下面讲解。

参见:第九章第2节:AspJpeg的GIF输出支持

Function PrintTextEx(Text As String, X As Long, Y As Long, FontPath As String) As Long

Prints anti-aliased text using a TrueType/OpenType or Type 1 font specified by its physical path. Supports word wrapping, rotation, text alignment (to the left, right, center and justified) and adjustable line spacing.

Text - specifies the text string to be printed (in Unicode format). May contain CR/LF characters for multi-line display.

XY - 第一行是第一个字符的左下角的坐标,相对于图像的左上角。

FontPath - 指定一个字体文件的物理路径。这个字体不需要正确注册在系统,因为路径到字体文件是已知的。

可以通过以下属性来指定额外的可选参数:

PenColor - 指定文本颜色索引。

FontRotation - specifies the rotation angle around the (XY) point in degrees. A positive value creates a counter-clockwise rotation.

FontSize - 指定字体大小,以像素计。

FontSpacing - 指定一个以像素计的调用,当要呈现多行文本时,用于默认行间距。一个正数值增加了行间距,一个负数值减少了行间距。

FontWidth - 指定了一个区域的宽度,会在这个区域内雕刻文本字符串。Word wrapping occurs if the text string does not fit in the area. This property must also be set if non-default text alignment is specified via FontAlign.

FontAlign - 指定文本对齐方式。有效值是:0(向左对齐,默认值)、1(向右对齐)、2(中间对齐)、3(两边分散对齐)对于一个非零值,必须同时指定FontWeight

返回绘制文本字符串的宽度(以像素计)。如果字符串分割成多行,返回最长行的宽度。

Sub RemoveFrame(Index As Long)

删除用索引指定的帧。如果当前帧已经被删除了,别的帧会成为当前帧,而且CurrentFrame属性也会改变。

参见:第九章第2节:AspJpeg的GIF输出支持

Sub Resize(Optional NewWidth, Optional NewHeight, Optional Interpolation)

缩放当前图像,与此同时保持其透明色和动画。如果指定了NewWidth参数或NewHeight参数(但不是指定了两者),被省略的那个参数会自动计算,以保持原始的宽衰败比。Interpolation默认值是1(邻近算法)。使用别的算法,在缩放某些会动的图像时,可能导致不想要的作品。

参见:第九章第3节:GIF图像缩放

Sub Save(Path As String)

把作为结果的GIF保存到磁盘。如果用Path指定的文件已经存在了,它会被覆盖。

参见:第九章:GIF输出

Function SaveUnique(Path As String) As String

Same as Save but generates a unique filename if the file specified by Path already exists. A unique name is generated to avoid overwriting an existing file by appending a number in parentheses after the filename, such as image(1).jpg, image(2).jpg, etc. Returns the filename (without the path) under which the image ends up being saved.

参见:第九章:GIF输出

Sub SendBinary(Optional ContentDisposition)

通过内部调用Response.BinaryWrite,把结果的图像直接发送到客户端浏览器。自动把Content-Type头设置为“image/gif”。

如果设置了ContentDisposition,同样会把"Content-Disposition"头设置成这个参数所指定的值。这个参数的一个典型的值是:"filename=image_name.gif"

or

"attachment;filename=image_name.gif"

你只可以在IIS环境中使用这个方法。

参见:第九章:GIF输出

Sub SetPalette(Global As Boolean, Palette As Variant)

通过提供一个RGB值数组,指定一个新的调色板,立即用于所有条目。

如果Global设置为true,则改变了全局调色板,否则只是改变当前帧所针对的局部调色板。

Palette is a safe array of numbers that are treated as consecutive RGB values of all palette entries. The size of the array must be 3 multiplied by a valid GIF palette size (2, 4, 8, ..., 256 entries.)

参见:第九章第5节:调色板管理

Sub SetStockPalette(Global As Boolean, Type As Long)

用数字指定一个内建的(或库存的)调色板。

如果Global被设置为true,会改变全局调色板,否则改变当前帧所用的局部调色板。

Type选择了一个可用的库存调色板。有效的值是:

  1. 216种web安全色。
  2. 16种标准HTML颜色
  3. 256种灰度色。

参见:第九章第5.3节:存档调色板

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

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