At 3:37 PM -0400 6/6/2005, Jon wrote:
This is great if you know in advance that there is enough room to display the image in this way, at this particular scale. What I wanted was something that automatically displayed the image at the largest resolution possible in "the available space". That's where the confusion comes in: I need to store the "available space" somewhere in the Image object if I am to perform the computations properly. Maybe it is just that simple, at least for me.

This should work. (It assumes that when you start, the image is at its natural size.)


on scaleImageTo myImage,newRect -- myImage is a short ID
  put item 3 of newRect - item 1 of newRect into newWidth
  put item 4 of newRect - item 2 of newRect into newHeight
  put newWidth/newHeight into newRatio
  put the formattedWidth of image ID myImage/ \
     the formattedHeight of image ID myImage into imageRatio
  lock screen
  -- scale the image to respect its aspect ratio
  if imageRatio = newRatio then
    -- proportions match
    set the height of image ID myImage to newHeight
    set the width of image ID myImage to newWidth
  else if imageRatio > newRatio then
    -- image height is proportionally greater
    set the width of image ID myImage to newWidth
    set the height of image ID myImage to \
       trunc(the width of image ID myImage/imageRatio)
  else -- imageRatio < newRatio
    -- image width is proportionally greater
    set the height of image ID myImage to newHeight
    set the width of image ID myImage to \
       trunc(the height of image ID myImage * imageRatio)
  end if
  set the topLeft of image ID myImage to \
     item 1 of newRect,item 2 of newRect
  -- maintain current size:
  set the lockLoc of image ID myImage to true
  unlock screen
end scaleImageTo
--
jeanne a. e. devoto ~ [EMAIL PROTECTED]
http://www.jaedworks.com
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to