AspImage 1.x
About ASPImage
ASPImage allows you to create images on the fly from ASP.
Features include:
- Create GIF* (RLE encoding only. Loading of GIFs not
supported) JPG, PNG and BMP format images.
- Modify existing images (JPG and BMP)
- Gradient fills
- Draw methods
Simple Image Example
If you'd like to view some sample images first, please go
to http://www.serverobjects.com/comp/AspImgEx.html
Using the component is as simple as
- Creating the object
- Setting a few properties
- Calling the SaveImage method
The following code demonstrates how to use ASPImage from
VBScript. In this example we'll create a text image that say's "Welcome to"
with a gradient fill.
** Note from BP Tech Support: the paths
below are correct for you. Don't forget that "yourdomaincom" may be
"yourdomainnet", etc., as applicable. **
Set Image =
Server.CreateObject("AspImage.Image")
' Set various font
parameters Image.FontColor = vbBlack Image.Italic =
True Image.Bold = True Image.FontName = "Arial"
Image.FontSize = 12 Image.PadSize = 10
'
Calculate how big our text info is and set the image to this
size ' This has to be done since we want to fill the area with
a gradient strMessage = "Welcome to" Image.MaxX =
Image.TextWidth (strMessage) Image.MaxY = Image.TextHeight
(strMessage)
' Create a one way gradient
Image.GradientOneWay vbRed, vbWhite, 0
' Print our string to the
image Image.TextOut strMessage, Image.X, Image.Y,
false
' Set the filename and save '
NOTE: You should gen the filename dynamically for multiuser usage
Image.FileName = "d:\html\users\yourdomaincom\filename.jpg" if
Image.SaveImage then ' The image was saved so write
the <img src> tag out for the browser to pick up
Response.Write "<img
src=""/users/yourdomaincom/filename.jpg""><br>"
else ' Something happened and we couldn't save the
image so just use an HTML header ' We need to
debug the script and find out what went wrong Response.Write
"<h2>Error</h2> end if
By testing the result of the SaveImage method we can
determine if the image save was successful or not. If something happened that
causes the image not to be saved it probably means the script is saving the
image to an invalid directory or a directory where write rights do not
exist.
GIF Animations
Images can be loaded or manipulated and then as these
modifications occur you can save them to an animated sequence using the call
AddImageToAnimation. A simple example of GIF animation can be found in
soianim.asp which is included with the eval zip file for AspImage.
Server object error 'ASP
0177:800401f3'. This error means "Invalid class string" --
in other words the call to CreateObject failed because the name object cannot
be found by the OLE sub-system. Causes include:
- You really didn't run regsvr32 on the server after
all.
- You ran regsvr32 but it reported an error.
- Someone modified security on part of the registry
that's preventing the OLE subsystem from reading all or part of the
HKEY_CLASSES_ROOT tree.
- The name of the object you are trying to create was
mispelled or is incorrect.
Questions about AspImage
| The browser is caching the image so my image is not
updated on each request. What can I do about that? |
Web browsers tend to cache images. This is a browser
problem, not an AspImage problem. The only solutions we know of are the
following:
- Set Response.Expires = "0"
- Use the Response.BinaryWrite as demo'd in the binwtext.asp sample
script included with AspImage. Write an HTML wrapper that calls the
ASP file as an image source tag as
<img
src="/myapp/myimage.asp"> This method works for
most browsers (it fails with some IE / Netscape versions).
The only other solution is to...
- Create random filenames and then erase the images created during
the Session_OnEnd event. This method works for all browsers.
- Add a meta tag to your ASP file <meta
http-equiv="pragma" content="no-cache">. This will not work
in ASP files that use the BinaryWrite call.
Please do not write asking for help with this problem. We cannot do
any more than point out the problems associated with these browsers and
suggest workarounds. If you need further assistance please contact the
browser manufacturer to find out where you can get support for their
product. If you want to complain about the problem please contact the
browser manufacturer and ask them why their caching algorithms are
flawed. ;-) |
| What color constants are defined by VBScript? |
The standard color constants are:
- vbBlack
- vbRed
- vbGreen
- vbYellow
- vbBlue
- vbMagenta
- vbCyan
- vbWhite
You can, of course, add your own constants to your scripting code. For example:
vbGrayText = &80000011 |
| I'm calling SaveImage but nothing is getting written out.
What's wrong? |
There are a few possible reasons for this:
- The path you specified is invalid. Fix the path and retry.
- The user context the component is operating under (either the
anonymous IIS user or another account that has been authenticated)
does not have write privileges to the directory you specified. Go into
file manager, right click on the directory, select properties, select
the security tab and then permissions. Make sure that any users which
will use the component have privileges to write to the directory.
- The file you are trying to write to is open in another process.
You can check the Error property for O/S result codes that identify
problems after an attempted save. |
| I set the AntiAliasText property to false but it still
looks like the image is anti-aliased. |
You are using JPEG encoding and color bleeding is
possible with JPEG encoding. The only option is to use another graphic
format. |
| When I create a new image pixel 0,0 is the wrong
color. |
That's because pixel 0,0's color was set already to a
particular color (usually black) and you resized the image. Pixel 0,0's
color was not reset. If you want to have pixel 0,0 set to another color
then after you resize you can:
- Set pixel 0,0 to a specific color using SetPixel
- Use FillRect to fill the entire image with another color
- Use FloodFill to fill an area including 0,0 with another color
|
| How do I convert HTML colors to RGB colors? |
HTML colors are easily converted to RGB values using the
VBScript RGB function.
For example the HTML color #E2BBF3 can be converted to RGB as
follows Image.GradientStartColor = vbWhite
Image.GradientEndColor = RGB(&hE2, &hBB, &hF3)</FONT > |
| After I load an image how do I find out the Height and
Width of the image loaded? |
Response.Write
"Image Height = " & Image.MaxY & " - Image Width = " & Image.MaxX </FONT >
< /FONT > |
| I add an image but it doesn't automatically resize the
image. What's wrong? |
AspImage only resizes automatically when text is added.
There are a number of possible scenarios a user might wish to occur when
an image is added and so we do not automatically resize the image in
this event. You can manually resize the image if you choose to. |
| Why doesn't AspImage support GIF? |
Unisys differentiates between servers and workstations in
their GIF licensing policies. In the case of Web servers, they expect
the operator of the Web server to pay $1500 a year to allow dynamic
generation of GIF images. Our suggestion is to avoid GIF. |
| Is it possible to set the color used by commands such as
Rectangle and Ellipse? |
See the PenColor, PenStyle and PenWidth
properties. |
Technical Support
If you require technical support please see our tech
support page at http://www.serverobjects.com/support.htm
ASPImage Properties
| Property |
Description |
| AntiAliasText |
The AntiAliasText allows you to create anti-aliased text
on the image. By default AntiAliasText is false.
Example: Image.AntiAliasText = True |
| AutoClear |
AutoClear is true by default. Once an image is saved the
current image is cleared. By setting AutoClear to false you can retain
the existing image after a save to continue working with it.
Example:
Image.AutoClear = false |
| AutoSize |
AutoSize determines whether or not an image should be
clipped when a draw request that falls outside of the images current
coordinates occurs. If AutoSize is true then the image will be enlarged
to handle the request. If AutoSize is false then the draw request will
be clipped to fit within the current image.
Example: Image.AutoSize = False |
| BackgroundColor |
Integer value specifies the background color.
Example: Image.BackgroundColor = vbWhite |
| Bold |
True/false value determines if font is bold or not.
Example: Image.Bold = True |
| BrushColor |
The BrushColor property determines the color of the
brush. (available in version >= 1.8)
Image.BrushColor = VbRed |
| BrushStyle |
The BrushStyle property determines the pattern painted by
the brush.
| Value |
Type |
Description |
| 0 |
Solid |
A solid hatch |
| 1 |
Clear |
A "clear"/empty hatch (BS_HOLLOW) |
| 2 |
Horizontal |
A horizontal hatch |
| 3 |
Vertical |
A vertical hatch |
| 4 |
FDiagonal |
A 45-degree downward, left-to-right hatch |
| 5 |
BDiagonal |
A 45-degree upward, left-to-right hatch |
| 6 |
Cross |
A horizontal and vertical cross-hatch |
| 7 |
DiagCross |
A 45-degree crosshatch | |
| Error |
The Error property is used to report any errors that may
have occurred during various method calls.
Example: Response.Write "Error: " & Chart.Error |
| Expires |
If the component is an eval or beta version the expires
property will return the date that the component quits functioning.
Example: Response.Write "Component Expires: " & Image.Expires
|
| FileName |
The FileName property specifies the physical path where a
file will be saved using the SaveImage method.
Example: Image.FileName =
"d:\html\users\yourdomaincom\filename.jpg" |
| FontColor |
The integer FontColor specifies the color of the font.
Example: Image.FontColor = vbRed |
| FontName |
The string FontName specifies the name of the font.
Example: Image.FontName = "MS Sans Serif" |
| FontSize |
The integer FontSize specifies the size of the font.
Example: Image.FontSize = 12 |
| Image |
Image is a read only property that contains the binary
data for the current Image. You can use this to write the binary data
directly to the client rather than using the SaveImage method. Your
application design should dictate the best method to use. From ASP you
can use Response.BinaryWrite to write this image data to the client. Be
sure and set ContentType to the proper content-type. Currently the Image
property only supports JPEG or PNG data. See the included file
BinWText.asp for an example of how to use this property. Set the
ImageFormat property to JPG or PNG before using this property. |
| ImageFormat |
ImageFormat determines what graphics for the image will
be saved to. Valid values are
- JPG = 1
- BMP = 2
- PNG = 3
- GIF = 5
Example: Image.ImageFormat = 5 Image.FileName =
"d:\html\users\yourdomaincom\filename.gif" |
| Italic |
True/false value determines if font is italic or not.
Example: Image.Italic = True |
| JPEGQuality |
If the ImageFormat is set to JPEG then the JPEGQuality
property specifies the quality of the JPEG image to be saved. Valid
values are 1-100.
Example: Image.JPEGQuality = 95 |
| MaxX |
The MaxX property determines the X size of the image.
Example: Image.MaxX = 100 |
| MaxY |
The MaxY property determines the Y size of the image.
Example: Image.MaxY = 100 |
| PadSize |
The PadSize property allows you to automatically placed
horizontal and vertical padding around text.
Example: Image.PadSize = 5 |
| PenColor |
Color determines the color used to draw lines on the
canvas.
Example: Image.PenColor = &h80000011 |
| PenStyle |
Style determines the style in which the pen draws lines.
| Value |
Type |
Description |
| 0 |
Solid |
A solid line. |
| 1 |
Dash |
A line made up of a series of dashes. |
| 2 |
Dot |
A line made up of a series of dots. |
| 3 |
DashDot |
A line made up of alternating dashes and
dots. |
| 4 |
DashDotDot |
A line made up of a serious of dash-dot-dot
combinations. |
| 5 |
Clear |
No line is drawn (used to omit the line around
shapes that draw an outline using the current pen). |
| 6 |
InsideFrame |
A solid line, but one that may use a dithered color
if Width is greater than 1. | |
| PenWidth |
Width specifies the maximum width of the pen in pixels.
Example: Image.PenWidth = 2 |
| ProgressiveJPEGEncoding |
ProgressiveJPEGEncoding determines whether an image can
be progressively displayed when it is decompressed.
ProgressiveJPEGEncoding is off by default.
Example: ProgressiveJPEGEncoding = true |
| RegisteredTo |
Returns the name of the customer or company who purchased
the component or "Evaluation" if the component is an evaluation
copy. |
| Strikeout |
True/false value determines if font is strikeout or not.
Example: Image.Strikeout = False |
| TextAngle |
The TextAngle property determines the angle the text
written with TextOut is written at. By default TextAngle is 0.
Example: Image.TextAngle = 90 |
| ThreeDColor |
Sets the text color used for 3d text.
Example: Image.ThreeDColor = &h80000011 |
| TransparentColor |
Determines the color used for transparencies when saving
a GIF image.
Example: Image.TransparentColor = vbWhite |
| TransparentText |
Determines whether the TextOut method writes text to the
image in transparent mode or not. By default this property is true.
Example: Image.TransparentText = true |
| Underline |
True/false value determines if font is underlined or not.
Example: Image.Underline = False |
| Version |
Gets the internal component version number.
Example: Response.Write "Component Version: " & Image.Version |
| X |
The X property indicates the current X (horizontal)
position of the cursor on the image.
Example: Image.X = 10 |
| Y |
The Y property indicates the current Y (vertical)
position of the cursor on the image.
Example: Image.Y = 10 |
ASPImage Component Methods
| Method |
Parameters |
Return Value |
Description |
| AddAnimationControl |
intDelay, bolTransparent,
intTransparentColor |
N/A |
Adds an animation control block to the GIF
animation sequence. intDelay is miliseconds to delay till the next
image. (available in version >= 1.8)
Image.AddAnimationControl intDelay, false, 0 |
| AddImage |
strFileName, intX, intY |
True/False |
Adds a new image to the canvas using the intX
and intY coordinates. |
| AddImageToAnimation |
N/A |
N/A |
Adds the current image to the GIF animation.
StartAnimation must be called before calling AddImageToAnimation. See
SaveAnimation. (available in version >= 1.8)
Image.AddImageToAnimation |
| AddImageTransparent |
strFileName, intX, intY,
intTransparentColor |
True/False |
Adds a new image to the canvas using the intX
and intY coordinates. intTransparent in the image strFilename is treated
as transparent. intTransparentColor is the exact color to make
transparent. "Similar" colors are not replaced.
Image.AddImageTransparent "d:\html\users\yourdomaincom\filename.jpg",
5, 12, vbWhite |
| AngleArc |
intX, intY, intRadius, dblStartDegrees,
dblSweepDegrees |
N/A |
The AngleArc function draws a line segment and
an arc. The line segment is drawn from the current position to the
beginning of the arc. The arc is drawn along the perimeter of a circle
with the given radius and center. The length of the arc is defined by
the given start and sweep angles. (available in version >= 1.8)
Image.AngleArc 50, 60, 60, 50, 90 |
| Arc |
intX1, intY1, intX2, intY2, intX3, intY3,
intX4, intY4 |
N/A |
Draws an arc on the image along the perimeter
of the ellipse bounded by the specified rectangle. |
| BeginPath |
N/A |
N/A |
Opens a path bracket (see EndPath and
FillPath). Methods with support paths: Polyline, Polygon,
PolyBezier. |
| BrightenImage |
intDegree |
N/A |
Makes the existing image appear brighter.
Example:
Image.BrightenImage 30 |
| CreateBlackWhite |
N/A |
N/A |
Turns the current image into a greyscale
image. |
CreateButton
|
intBorder, bolSoft |
N/A |
Creates a button like border around the image
for intBorder pixels. If bolSoft is true the button border is softened.
Example:
Image.CreateButton 10, true |
| CreateNegative |
N/A |
N/A |
Creates a negative image effect of the current
image. |
| CropImage |
intStartX, intStartY, intWidth, intHeight |
N/A |
Crops the image using the X, Y, width and
height specified. |
| Chord |
intX1, intY1, intX2, intY2, intX3, intY3,
intX4, intY4 |
N/A |
Draws a closed figure represented by the
intersection of a line and an ellipse. |
| ClearImage |
N/A |
N/A |
Clears the image canvas using the current
BackgroundColor as the fill color. |
| DarkenImage |
intDegree |
N/A |
Makes the existing image appear darker.
Example:
Image.DarkenImage 30 |
| DoMerge |
strFileName, intPercent |
N/A |
Loads strFileName (full path to a BMP, or JPG
file) and then merges with the existing image. The higher intPercent is
to 100 the more predominant strFileName will be seen over the existing
image. intPercent should be inbetween 1-99. (available in version >=
1.8)
If you have problems loading an image with LoadImage, DoMerge won't
work either. This function uses the same load function. So if you are
not able to successfully do a merge, try loading the image first with
LoadImage. If that doesn't work then use the FAQ section of this
document to determine why LoadImage cannot successfully load the image.
Once that works then try DoMerge.
Example:
DoMerge "d:\html\users\yourdomaincom\filename.jpg", 20 |
| EndPath |
N/A |
N/A |
Closes a path bracket (see BeginPath and
FillPath). |
| Ellipse |
intX1, intY1, intX2, intY2 |
N/A |
Ellipse draws the ellipse defined by a
bounding rectangle on the image. |
| FillPath |
N/A |
N/A |
The FillPath function closes any open figures
in the current path and fills the path's interior by using the current
brush and polygon-filling mode. (available in version >= 1.8).
Dim aRgnPts(5,1)
aRgnPts(0,0) = 182 aRgnPts(0,1) =
34 aRgnPts(1,0) = 210 aRgnPts(1,1) = 72 aRgnPts(2,0) =
212 aRgnPts(2,1) = 112 aRgnPts(3,0) = 146 aRgnPts(3,1) =
112 aRgnPts(4,0) = 146 aRgnPts(4,1) = 76
Image.BrushStyle =
6 Image.BrushColor = vbRed Image.BeginPath Image.Polygon
aRgnPts Image.EndPath Image.FillPath |
| FillRect |
intLeft, intTop, intRight, intBottom |
N/A |
FillRect fills the specified rectangle on the
image. |
| FlipImage |
intDirection |
N/A |
Flips the image
Valid values for intDirection are: 1 = Horizontal 2 =
Vertical |
| FloodFill |
intX, intY, intColor, intFillStyle |
N/A |
Use FloodFill to fill a possibly
non-rectangular region of the image. The boundaries of the region to be
filled are determined by moving outward from the point (X,Y) until a
color boundary involving the Color parameter is encountered. Floodfill
uses the BackgroundColor and BrushStyle properties.
Legal values for intFillStyle are:
| Value |
Type |
Description |
| 0 |
Surface |
Fills all area that has the color indicated by the
intColor parameter but stops when another color intersects. |
| 1 |
Border |
Fills all area that does not have the color
indicated by the intColor parameter but stops when intColor
intersects. | |
| FrameRect |
intLeft, intTop, intRight, intBottom |
N/A |
Draws a 1 pixel wide border around a
rectangular region using the points specified. |
| LoadImage |
strFileName |
True/False |
Loads an existing image into the image canvas.
You can load JPG, and BMP files.
LoadImage resets font changes so that changes to the font size, name
and characteristics for new text are lost. If you use the LoadImage
procedure be sure you make fonts modifications after the call to
LoadImage. |
| GetPixel |
intX, intY |
intColor |
Returns the pixel color for intX, intY |
| GradientOneWay |
intBeginColor, intEndColor, intDirection |
N/A |
Creates a one way gradient beginning with the
color intBeginColor and ending in the color specified by
intEndColor. |
| GradientTwoWay |
intBeginColor, intEndColor, intDirection,
intInOut |
N/A |
Creates a two way gradient beginning with the
color intBeginColor and ending in the color specified by
intEndColor. |
| LineTo |
intX, intY |
N/A |
Creates a line from properties X, Y and going
to intX, intY. |
| LoadBlob |
ovBlob, intType |
True/False |
LoadBlob is designed to allow the loading of
binary image data from other AspImage objects (using the .Image property
for ovBlob) or from other data sources where binary image data is
available via an OLE variant pointer. ovBlob is an OLE variant pointing
to raw image data. The raw image data is loaded onto the AspImage
canvas.The parameter intType indicates what type of format the binary
data is in. Valid intTypes are: 1 = JPEG 2 = BMP
Example:
Set Image = Server.CreateObject("AspImage.Image") Image.LoadImage
("d:d:\html\users\yourdomaincom\filename.jpg") Image.FlipImage
2 Image.ImageFormat = 1
Set Image2 =
Server.CreateObject("AspImage.Image") Image2.LoadBlob Image.Image,
1 [Image2 now has a flipped image of map.jpg] |
| Pie |
intX1, intY1, intX2, intY2, intX3, intY3,
intX4, intY4 |
N/A |
Draws a pie-shaped the section of the ellipse
bounded by the rectangle (X1, Y1) and (X2, Y2) on the image. |
| PolyBezier |
aryPoints |
N/A |
Draws one or more Bézier curves. Max of 99
points supported in a single call to PolyBezier. (available in version
>= 1.8)
Dim RgnPts(3,1)
RgnPts(0,0) = 79 RgnPts(0,1) = 70 RgnPts(1,0) =
64 RgnPts(1,1) = 86 RgnPts(2,0) = 47 RgnPts(2,1) =
88 Image.PolyBezier RgnPts
|
| Polygon |
aryPoints |
N/A |
Polygon draws a series of lines on the canvas
connecting the points passed in and closing the shape by drawing a line
from the last point to the first point. (available in version >= 1.8)
Dim RgnPts(4,1)
RgnPts(0,0) = 70 RgnPts(0,1) =
76 RgnPts(1,0) = 310 RgnPts(1,1) = 350 RgnPts(2,0) =
200 RgnPts(2,1) = 450 RgnPts(3,0) = 100 RgnPts(3,1) =
300 Image.Polygon RgnPts |
| PolyLine |
aryPoints |
N/A |
Polyline draws a series of lines on the canvas
with the current pen. Each of the points are connected. (available in
version >= 1.8)
Dim RgnPts(3,1)
RgnPts(0,0) = 79 RgnPts(0,1) = 70 RgnPts(1,0) =
64 RgnPts(1,1) = 86 RgnPts(2,0) = 47 RgnPts(2,1) =
88 Image.PolyLine RgnPts |
| Rectangle |
intX1, intY1, intX2, intY2 |
N/A |
Creates a rectangle using the points
specified. |
| Resize |
intWidth, intHeight |
N/A |
Resizes image to intWidth, intHeight |
| RotateImage |
intDegrees |
N/A |
Rotates image to specified angle. |
| RoundRect |
intX1, intY1, intX2, intY2, intX3, intY3 |
N/A |
Creates a round rectangle using the points
specified. |
| SaveAnimation |
N/A |
True/False |
Saves the current GIF animation to the file
indicated by the FileName property. (available in version >= 1.8)
Image.SaveAnimation |
| SaveImage |
N/A |
True/False |
Saves the current image canvas into the file
specified in the property FileName. |
| SetPixel |
intX, intY, intColor |
N/A |
Set the pixel at location intX, intY to
intColor. (available in version >= 1.8)
for i = 10 to 50 Image.SetPixel 5+(rnd*10), i,
vbGreen next |
| StartAnimation |
bolLoop |
N/A |
Starts an animation sequence for animated
GIFs. bolLoop indicates whether the animation sequence will loop or not.
(available in version >= 1.8)
Image.StartAnimation true |
| StrokeAndFillPath |
N/A |
N/A |
Closes any open figures in a path, strokes the
outline of the path by using the current pen, and fills its interior by
using the current brush. (available in version >= 1.8) |
| TextOut |
strText, intX, intY, bol3d |
N/A |
TextOut writes a text value using the current
font, color and other characteristics to the image at the location
specified by intX and intY. If bol3d is true then the text is rendered
using a 3d look. |
| TextHeight |
strValue |
Integer |
Returns the text height for strValue using the
current font, font size and font characteristics. |
| TextWidth |
strValue |
Integer |
Returns the text width for strValue using the
current font, font size and font characteristics. |
| TintImage |
intColor |
N/A |
Takes an existing image and shades the image
with tints of intColor.
Example:
Image.TintImage vbBlue |
Copyright © 1996, 1997, 1998, 1999 by ServerObjects Inc. All
Rights Reserved.
|