Alright, Benoit Hediard ([EMAIL PROTECTED]) was nice enough to give me 
additional details to his ImageJ solution.  I asked for his permission in 
posting it and he's cool with it, figured some others might be interested.  
Your mileage may vary, use at your own risk, I'm not responsible - nor is 
Ben Hediard. ;)  There's a lot more stuff in ImageJ, this is just one 
example (from what I'm told, you could also write one to transform a .gif 
file into a .jpg file, I would imagine this would come handy with those 
wanting to dynamically import .jpg's).

Cheers,
~Todd

------------------------------------------------------  
Step 1.) Head over to http://rsb.info.nih.gov/ij/index.html and download 
ImageJ http://rsb.info.nih.gov/ij/download.html

Step 2.) Put Download "ij.jar", put it in "WEB-INF/lib"

Step 3.) Hiccup the server (restart it)

Step 4.) Example usage:

<cffunction name="resize" output="false" returntype="boolean">
        <!--- 
          Written by: Benoit Hediard ([EMAIL PROTECTED])
          Purpose: Here is a function I wrote to resize Jpeg and Gif 
images (it uses getType, getHeight, getWidth and the resizing processor).
        --->
        <cfargument name="OriginalImagePath" type="string" 
required="true">
        <cfargument name="ResizedImagePath" type="string" required="true">
        <cfargument name="ResizeValue" type="numeric" required="true">
        <cfargument name="ResizeType" type="string" required="false" 
default="auto" hint="Possible value : auto, width or height">

        <cfset var bOK = false>
        <cfif FileExists(arguments.OriginalImagePath)>
                <cfobject type="java" name="objImagePlus" 
class="ij.ImagePlus" action="create">
                <cfobject type="java" name="objOpener" 
class="ij.io.Opener" action="create">
                <cfobject type="java" name="objFileSaver" 
class="ij.io.FileSaver" action="create">

                <cfscript>
                objOriginalImage = 
objOpener.openImage(arguments.OriginalImagePath);
                numOriginalType = objOriginalImage.getType();
                numOriginalWidth = objOriginalImage.getWidth();
                numOriginalHeight = objOriginalImage.getHeight();
                </cfscript>

                <cfswitch expression="#arguments.ResizeType#">
                <cfcase value="auto">
                        <cfif numOriginalWidth gte numOriginalHeight>
                                <cfset numResizedWidth = 
arguments.ResizeValue>
                                <cfset numResizedHeight = 
Round(numResizedWidth * numOriginalHeight / numOriginalWidth)>
                        <cfelse>
                                <cfset numResizedHeight = 
arguments.ResizeValue>
                                <cfset numResizedWidth = 
Round(numResizedHeight * numOriginalWidth / numOriginalHeight)>
                        </cfif>
                </cfcase>
                <cfcase value="height">
                        <cfset numResizedHeight = arguments.ResizeValue>
                        <cfset numResizedWidth = Round(numResizedHeight * 
numOriginalWidth / numOriginalHeight)>
                </cfcase>
                <cfcase value="width">
                        <cfset numResizedWidth = arguments.ResizeValue>
                        <cfset numResizedHeight = Round(numResizedWidth * 
numOriginalHeight / numOriginalWidth)>
                </cfcase>
                </cfswitch>

                <cfscript>
                objResizedProcessor = 
objOriginalImage.getProcessor().resize(JavaCast("int",numResizedWidth),JavaCast("int",numResizedHeight));
                objResizedImage = 
objImagePlus.init("Vignette",objResizedProcessor);
                objSaver = objFileSaver.init(objResizedImage);
                if (numOriginalType eq 3) bOK = 
objSaver.saveAsGif(arguments.ResizedImagePath);
                if (numOriginalType eq 4) bOK = 
objSaver.saveAsJpeg(arguments.ResizedImagePath);
                </cfscript>
        </cfif>
        <cfreturn bOK>
</cffunction>


-- 
============================================================
Todd Rafferty ([EMAIL PROTECTED]) - http://www.web-rat.com/ |
        Team Macromedia Volunteer for ColdFusion           |
http://www.macromedia.com/support/forums/team_macromedia/  |
http://www.flashCFM.com/   - webRat (Moderator)            |
http://www.ultrashock.com/ - webRat (Back-end Moderator)   |
============================================================

______________________________________________________________________
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to