Scaling images on the fly?

Jeanne A. E. DeVoto revolution at jaedworks.com
Sun Jan 2 19:19:19 CST 2005


At 5:09 PM -0600 1/2/05, docmann wrote:
>Is there a way to constrain or scale the display image while
>maintaining the proper size perspective of the original image, to
>avoid distortion?

Here's a quick way, assuming you want the image to be 100 pixels x 
100 pixels or so:

   create image "Holder" -- optional - if the image object doesn't exist yet
   set the filename of image "Holder" to myURL
   -- (myURL contains the URL of the image you want to show)
   -- get the ratio of the natural width/height of the image:
   put the width of image "Holder"/the height of image "Holder" into 
naturalRatio
   -- scale the image to respect its aspect ratio:
   if naturalRatio = 1 then -- square image
     set the rect of image "Holder" to (0,0,100,100)
   else if naturalRatio < 1 then -- image height is proportionally greater
     set the width of image "Holder" to 100
     set the height of image "Holder" to trunc(the width of image 
"Holder"/naturalRatio)
   else -- naturalRatio > 1, image width is proportionally greater
     set the height of image "Holder" to 100
     set the width of image "Holder" to trunc(the height of image 
"Holder" * naturalRatio)
   end if
   set the lockLoc of image "Holder" to true -- maintain current size
   set the loc of image "Holder" to 100,100 -- or wherever you want to put it

The above sets the smaller dimension of the image to 100 pixels. You 
can vary this to set the larger dimension to 100 pixels by setting 
the height to 100 first if naturalRatio < 1, and the width if 
naturalRatio > 1.
-- 
jeanne a. e. devoto ~ revolution at jaedworks.com
http://www.jaedworks.com


More information about the use-livecode mailing list