A common issue with developing web sites for customers is sometimes the unfortunate inability to install server side components for performing specific tasks. A common question asked by beginners to ASP is how to draw graphics and send them to the browser. Normally, this task requires either client-side Java or server side COM objects to get the job done, and it has generally been accepted that this will always be the case in pre-.NET environments. The following class can change your attitude towards creating images This class provides a simple canvas with which you draw things on, it is written in ASP and is initialised simply by:
<!--#include file="canvas.asp"--> <% Set objCanvas = New Canvas ' Create the object objCanvas.GlobalColourTable(0) = RGB(255,255,255) ' First colour index to white objCanvas.GlobalColourTable(1) = RGB(0,0,0) ' Second colour index to black objCanvas.Resize 160,120,false ' Resize the canvas to 160x120, don't preserve the existing image objCanvas.ForegroundColourIndex = 1 ' Set the drawing pen colour index to 1 (black) objCanvas.Ellipse 100,100,30,20 ' Draw an ellipse in black, with two radii, 30 and 20 pixels objCanvas.Circle 50,50,10 ' Draw a circle in black, radii of 10 pixels objCanvas.Write ' Send the image to the browser %>
Further instructions on using the class are included with the source files. This class supports the following drawing methods: Copy X1,Y1,X2,Y2,X3,Y3 - Copy a region from X1,Y1,X2,Y2 to X3,Y3 Flood X,Y - Floodfill a region with the drawing pen colour, starting at X,Y Line X1,Y1,X2,Y2 - Draw a line with the pen colour, from X1,Y1 to X2,Y2 Circle X,Y,Radius - Draw a circle at X,Y with a radius in pixels Ellipse X,Y,Radius1,Radius2 - Draw an ellipse at X,Y with the two radii of Radius1 and Radius2 DrawTextWE X,Y,Text - Draw text from west to east at X,Y. Text is a string DrawTextNS X,Y,Text - Draw text from north to south at X,Y. Text is a string Clear - Clear the canvas to the current background colour index Resize Width,Height,Preserve - Resize the canvas to Width and Height, set preserve to keep the current canvas image Write - Send the image to the browser And also the following properties: Pixel(X,Y) - Sets or retrieves the current pixel colour index value GlobalColourTable(Index) - Sets or retrieves the current global colour table RGB value ForegroundColourIndex - Sets or retrieves the current drawing pen colour index BackgroundColourIndex - Sets or retrieves the current background colour index Version - Retrieves the current version of the class The fonts definitions are included in font.asp, and can be redefined by editing this file. Instructions are also included in the accompanying documentation.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More ASP Code Articles More By aspfree developerWorks - FREE Tools! | Visit IBM developerWorks to download IBM DB2 Express-C 9.5, a no-charge version of DB2 Express 9 database server. DB2 Express-C offers the same core data server base features as other DB2 Express editions and provides a solid base to build and deploy applications developed using C/C++, Java, .NET, PHP, and other programming languages. FREE! Go There Now!
| | | | Join this Rational Talks to You teleconference, featuring Paul Boustany and Mark Krasovich, to speak to the experts about becoming a Rational ClearCase power user. Get a chance to ask your questions and learn tips and tricks for using Rational ClearCase in Agile development FREE! Go There Now!
| | | | Learn from the best! Find out how developers use Rational ClearCase to be more flexible, innovative and deliver higher quality code in the Rational ClearCase Power Users eKit. This complimentary eKit provides a collection of materials, like articles, whitepapers, and demos that can help you become a power user of Rational ClearCase. FREE! Go There Now!
| | | | As organizations integrate software into every aspect of business, they are constantly pressured to deliver faster, better, and cheaper results. Unfortunately, a “dis-integrated” software delivery approach reduces returns while increasing costs. This IBM Rational White Paper shows how Integrated Requirements Management aligns organizations around maximizing value and keeping pace with change. FREE! Go There Now!
| | | | As organizations have grown increasingly dependent on online software, the risk of malicious attacks has also become far more serious. Fortunately, well-governed organizations can protect their Web applications by injecting vulnerability assessments and ethical hacks into their software development and delivery processes. This paper describes 12 of the most common hacker attacks and provides basic rules that you can follow to help create more hack-resistant Web applications. FREE! Go There Now!
| | | | You can now evaluate IBM Rational Asset Manager V7.0 online without installing or configuring it on your own system! Rational Asset Manager helps create, modify, govern, find, and reuse any type of development assets, including SOA and systems development assets. Rational Asset Manager helps you reduce software development costs and improve quality by facilitating the reuse of all types of software development-related assets. Visit developerWorks to learn more about this product and register to explore its capabilities online. FREE! Go There Now!
| | | | Learn how to implement a build management system that uses and extends your existing automation technologies. This tutorial shows, step-by-step, how to install and configure IBM Rational Build Forge to manage builds for Jakarta Tomcat from source code. FREE! Go There Now!
| | | | Viper 2 brings a great value to developer communities including SQL, XML, PHP, Ruby, .NET and Java. You probably already know that DB2 Express-C is free for developers to develop, deploy and distribute. Viper 2 provides a variety of means that help move your application from the development stage to deployment more rapidly. This webcast shows how to best utilize the latest tools available for developing DB2 applications. FREE! Go There Now!
| | | | Manage, govern, and share services across your organization by using WebSphere Service Registry and Repository. Follow the hands-on exercises to learn how to navigate the Web interface to publish, find, reuse, and update services. FREE! Go There Now!
| | | | Discover how Rational tools and best practices for testing can make your job easier. The new Rational Testing eKits provide you with valuable resources – including demos, webcasts, tutorials, and articles – that help you address your specific testing needs across the software lifecycle. Five new eKits are available covering the topics of Requirements and Test Management, Functional Testing, Performance Testing, Code Quality and Embedded Systems, and SOA and Web Services Testing. FREE! Go There Now!
| | | | All FREE IBM® developerWorks Tools! | |