Subsribe to our RSS

latest reactions

Sean
What about if it isn't in a session, but …
Tjarko
Strange thing however is that the same s …
jax
another option.. replace the path separa …
jax
Load the file into eclipse and turn on ' …
jax
What does it say in the invalid *.cfmail …

mxna feeds

Adobe Developer Week 2008 Screencasts AvailableObject Oriented Data Validation And Error Message TranslationDeveloping ColdFusion Java Hybrid ApplicationsA Question of SpeedNext Event Coming in June and New ColdFusion User Group ManagerAdobe ColdFusion team - New TopicsColdFusion 9 Feature Request: Ext JS OnlyColdFusion 9 Feature Request: cfquery resultTypePatch for CFImage and Image functions in ColdFusion 8.0.1Proposals for ColdFusion 9 - From the Enemy's CampMXNA is now Adobe Feeds...MXNA is now Adobe Feeds...Free ColdFusion CMSUsing Constants in ColdFusion ComponentsThe Differences Between This and Variables

All files are strictly confidential: all information is classified.
© Copyright 2002 - 2008 mximize.com.
All right reserved.

MXNA webfeed

Visit Carlos GallupaPowered by ColdFusion MX 7.01

Using ColdFusion image functions to resize an image into a square thumbnail

After trying several times to resize and crop the image to fit nicely into a square I stumbled upon the function ImageScaleToFit() and that was exactly what I needed for my problem. I want to fit an image into a square thumbnail, but with the imageCrop or Resize you can't get the image to fit. :-(

What I did is the following... after I found the ImageScaleToFit function I also found the ImagePaste function which will paste 1 image into the other. After thinking about this I came with the solution to first scale the image to the correct size, then make a new blank image with the imageNew() function and paste the 2 together.

With the ImagePaste() function you also need to calculate the x and y value where the image should be pasted upon the other image. See the code below for an example

The original image:


<!---Read the image into an object --->
<cfimage action="read" name="myImage" source="65.jpg">

<!--- Set the square size of the thumb --->
<cfset sq_size = 200>

<!--- Write the result to a file. --->
<cfset ImageSetAntialiasing(myImage,"on")>
<cfset ImageScaleToFit(myImage,sq_size,sq_size)>

<!--- Calculate the x and y position to paste the image --->
<cfif myImage.width GTE myImage.height>
    <cfset x = 0>
    <cfset y = ceiling((myImage.width - myImage.height)/2)>
<cfelse>
    <cfset x = ceiling((myImage.height - myImage.width)/2)>
    <cfset y = 0>
</cfif>

<cfset newimg = ImageNew("",sq_size, sq_size, "rgb", "FF0000")>

<cfset ImagePaste(newimg, myImage, x, y)>

<cfimage action="WRITETOBROWSER" source="#newimg#" format="JPG">


The result image looks like this. Picture taken from www.wickedweasel.com

1771 viewed | 2 opinion(s)  | del.icio.us | Digg it | Tjarko @ 13/12/07 12:29 cet


Reactions:

Sebastiaan wrote.... (site)

Hi Tjarko, we incorporate the same thing in our webshop. A user can upload an image and we automagically scale it down to a thumbnail using CFimage. Only works in CF8 of course ;-) The beauty is that the user only needs to upload the one image he/she needs and we than scale it to the two set sizes (full and thumb). No more hassle in Photoshop ;-)

17 December 2007 9:41 cet  

wrote....

05 May 2008 8:54 cet  

Leave your comment

Your name


Your url/website/link/email....


Some room for your reaction is placed here..



A dozen apples are how many?? (12 would be a good answer for this)




URL en mail addresses are translated for you... life sometimes is that simple!!
profile-manuscript