Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
SYS-CON.TV
CFImage Functionality is Just Awesome!
Integration into Tag and Scripting Language is a Welcome Development

Finally, ColdFusion 8 has incorporated image manipulation directly into the ColdFusion tag and scripting language. No more are we, as developers, chained to third-party products.

These products, while excellent in quality, just mean adding one more level of complexity to any application that requires server-side image manipulation. Now, with CFImage and an abundance of image-related functions, ColdFusion has done to image manipulation what it has done to almost every other aspect of Web applications development - it has made it simple.

Due to the wide array of image functionality in ColdFusion 8, I am going to try and break this tutorial up into several small and manageable parts. The first part will cover basic reading and writing of images using CFImage and the related image manipulation functions. But, before we get into that, let's just quickly touch upon these new features as a whole.

ColdFusion 8 has given us CFImage. CFImage provides us with tag-based access to only a small subset of the image functionality including:

  • Retrieving information about an image
  • Reading an image into memory
  • Resizing an image
  • Rotating an image
  • Adding a border to an image
  • Converting an image from one file format to another
  • Creating a CAPTCHA image
  • Writing an image to a file
  • Writing an image to the browser

    In addition to the CFImage tag, ColdFusion has introduced dozens of new image manipulation functions including:

     

  • ImageAddBorder()
  • ImageBlur()
  • ImageClearRect()
  • ImageCopy()
  • ImageCrop()
  • ImageDrawArc()
  • ImageDrawBeveledRect()
  • ImageDrawCubicCurve()
  • ImageDrawLine()
  • ImageDrawLines()
  • ImageDrawOval()
  • ImageDrawPoint()
  • ImageDrawQuadraticCurve()
  • ImageDrawRect()
  • ImageGetEXIFTag()
  • ImageGetHeight()
  • ImageGetIPTCTag()
  • ImageGetWidth()
  • ImageGrayscale()
  • ImageInfo()
  • ImageNegative()
  • ImageNew()
  • ImageOverlay()
  • ImagePaste()
  • ImageRead()
  • ImageReadBase64()
  • ImageResize()
  • ImageRotate()
  • ImageRotateDrawingAxis()
  • ImageScaleToFit()
  • ImageSetAntialiasing()

The ColdFusion 8 CFImage tag and the image-related functions all deal with a new ColdFusion object:

coldfusion.image.Image

Most of you are not going to care about this one all that much, but for those of you who are interested in the underlying Java methods of the coldfusion.image.Image object, I have listed them below (skip past this if you have no idea what I'm talking about). Please note that any underlying methods of the actual Java/ColdFusion objects are found by gathering object metadata and through reflection; none of these methods are documented or officially supported. If you choose to use them, you do so at your own risk and discretion.

  • addBorder( int, java.lang.String, java.lang.String ) - returns: void
  • blur( int ) - returns: void
  • brighten() - returns: void
  • clearRect( int, int, int, int ) - returns: void
  • copyArea( int, int, int, int ) - returns: coldfusion.image.Image
  • copyArea( int, int, int, int, int, int ) - returns: coldfusion.image.Image
  • crop( float, float, float, float ) - returns: void
  • draw3DRect( int, int, int, int, boolean, boolean ) - returns: void
  • drawArc( int, int, int, int, int, int, boolean ) - returns: void
  • drawCubicCurve( double, double, double, double, double, double, double, double ) - returns: void
  • drawLine( int, int, int, int ) - returns: void
  • drawLines( [I, [I, boolean, boolean ) - returns: void
  • drawOval( int, int, int, int, boolean ) - returns: void
  • drawPoint( int, int ) - returns: void
  • drawQuadraticCurve( double, double, double, double, double, double ) - returns: void
  • drawRect( int, int, int, int, boolean ) - returns: void
  • drawRoundRect( int, int, int, int, int, int, boolean ) - returns: void
  • drawString( java.lang.String, int, int, coldfusion.runtime.Struct ) - returns: void
  • flip( java.lang.String ) - returns: void
  • getBase64String( java.lang.String ) - returns: java.lang.String
  • getClass() - returns: java.lang.Class
  • getColor( java.lang.String ) - returns: java.awt.Color
  • getCurrentGraphics() - returns: java.awt.Graphics2D
  • getCurrentImage() - returns: java.awt.image.BufferedImage
  • getExifMetadata( javax.servlet.jsp.PageContext )- returns: coldfusion.runtime.Struct
  • getExifTag( java.lang.String, javax.servlet.jsp.PageContext ) - returns: java.lang.String
  • getHeight() - returns: int
  • getImageBytes( java.lang.String ) - returns: [B
  • getIptcMetadata( javax.servlet.jsp.PageContext ) - returns: coldfusion.runtime.Struct
  • getIptcTag( java.lang.String, javax.servlet.jsp.PageContext ) - returns: java.lang.String
  • getSource() - returns: java.lang.String
  • getWidth() - returns: int
  • grayscale() - returns: void
  • info() - returns: coldfusion.runtime.Struct
  • initializeMetadata( javax.servlet.jsp.PageContext ) - returns: void
  • invert() - returns: void
  • overlay( coldfusion.image.Image ) - returns: void
  • paste( coldfusion.image.Image, int, int ) - returns: void
  • readBase64( java.lang.String ) - returns: void
  • resize( java.lang.String, java.lang.String, java.lang.String ) - returns: void
  • resize( java.lang.String, java.lang.String, java.lang.String, double ) - returns: void
  • rotate( float, float, float, java.lang.String ) - returns: void
  • rotateAxis( double ) - returns: void
  • rotateAxis( double, double, double ) - returns: void
  • scaleToFit( int ) - returns: void
  • scaleToFit( java.lang.String, java.lang.String, java.lang.String ) - returns: void
  • scaleToFit( java.lang.String, java.lang.String, java.lang.String, double ) - returns: void
  • setAntiAliasing( java.lang.String ) - returns: void
  • setBackground( java.lang.String ) - returns: void
  • setColor( java.lang.String ) - returns: void
  • setDrawingStroke( coldfusion.runtime.Struct ) - returns: void
  • setDrawingStroke( float, int, int, float, [F, float ) - returns: void
  • setRenderingHint( java.awt.RenderingHints$Key, java.lang.Object ) - returns: void
  • setTranparency( double ) - returns: void
  • setXorMode( java.lang.String ) - returns: void
  • sharpen( float ) - returns: void
  • sharpenEdge() - returns: void
  • shear( float, java.lang.String, java.lang.String ) - returns: void
  • shearAxis( double, double ) - returns: void
  • translate( int, int, java.lang.String ) - returns: void
  • translateAxis( int, int ) - returns: void
  • write( java.lang.String, float ) - returns: void
  • writeBase64( java.lang.String, java.lang.String, boolean ) - returns: void

About Ben Nadel
Ben Nadel has worked with ColdFusion for eight years and is a super ColdFusion enthusiast. He blogs regularly about all aspects of Web development on his personal site, http://www.bennadel.com, and does his best to give back to the ColdFusion community through online code demos and his "Ask Ben" blog posts. He is also a Certified Advanced ColdFusion MX7 developer and is one of the lead programmers at Nylon Technology.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

The noisy ad is beyond annoying.

I wonder if the CF team consulted with the developer of ImageCFC? It also was basically a wrapper for the underlying Java image functionality. Either way, this looks like an exceptionally useful tool. Do you need to instantiate the object using cfimage? Or is it possible to manipulate an image completely within cfscript?

rename the CodFusion as ColdFusion !


Your Feedback
Michael wrote: The noisy ad is beyond annoying.
Mike Ritchie wrote: I wonder if the CF team consulted with the developer of ImageCFC? It also was basically a wrapper for the underlying Java image functionality. Either way, this looks like an exceptionally useful tool. Do you need to instantiate the object using cfimage? Or is it possible to manipulate an image completely within cfscript?
Sanjeev wrote: rename the CodFusion as ColdFusion !
SOA World Latest Stories
In a surprise move on Tuesday, January 10, Oracle wheeled out its Big Data Appliance. That’s the one it said in October would be ready sometime in the first half. Only nobody believed it meant early in the first half. Heck, it’s not even clear anybody thought Oracle could make the fi...
A Munich court Thursday found Motorola Mobility guilty of infringing an Apple patent and handed Apple a permanent injunction against two Android smartphones. Apple can enforce the injunction after posting a bond lest MMI succeed in invalidating the slide-to-unlock patent (EP1964022) ...
Quick Response (QR) codes are intended to help direct users quickly and easily to information about products and services, but they are also starting to be used for social engineering exploits. This article looks at the emergence of QR scan scams and the rising concern for users today....
The Chinese company that claims it owns the iPad trademark says it plans to seek a ban on iPad exports out of China, threatening global supplies. According to what a lawyer for Proview Technology (Shenzhen) Co Ltd told Reuters, the firm is petitioning Chinese customs to stop shipment...
Cisco Wednesday filed suit in the European Union’s second-highest court, the General Court in Luxembourg, challenging the European Commission’s rubber stamp last October of Microsoft’s $8.5 billion acquisition of Skype. Cisco says it isn’t opposed to the merger, but figures the EC sh...
2011 was a year of rapid adoption for public and private cloud services. Instant and on-demand server provisioning was the driving force behind the massive growth. On top, cloud server templates and script automation simplified application installation for simple and pre-defined applic...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE