Resized images reverting to their original size

Chipp Walters chipp at chipp.com
Sat Nov 20 07:37:58 EST 2004


Jim Carwardine wrote:

 > I'm sure that all the different ways to reference an image is needed and
 > used by a few deeply knowlegeable scriptors, however, what I went 
thru to do
 > something similar to what you are asking was nothing short of one big
 > work-around.
 >
 > Rant coming... Why can't we have a statement that reads like this...
 >
 >                   set the icon of button xxx proportional to image yyy
 >
 > Which would then make a permanent change to the buttons icon property 
that
 > could only be altered by another deliberate action.  In addition, RR 
would
 > assume you want the image converted to png unless you specify jpg or
 > something else specifically in an image acquisition statement like import
 > snapshot , etc.
 >
 > Jim

Jim, your asking to add yet another token to the already large library, 
thus making things more complicated, rather than less. You can easily 
change and 'set' the size of an image and apply it to a button using the 
handler below. Note, this code could be easily modified to do a lot 
more, including error-checking, auto-changing the size of a button, etc.

See esp the line:
set the imagedata of last img to the imagedata of last img


CREATE A NEW STACK
CREATE A BLANK IMG NAMED "temp"
CREATE A BUTTON "myButton" AND SET THE SCRIPT OF IT TO:

on mouseUp

   constant kImgWidth = 80
   answer file "choose image:"
   if it is empty then exit to top

   makeAndSetIcon it, "myButton"

end mouseUp

on makeAndSetIcon pImgFileName, pButtonName

   --> THIS HANDLER WILL SET THE ICON OF BTN pButtonName
   --> TO THE FILE SPECIFIED BY pImgFileName
   --> BE SURE TO HAVE AN IMG NAMED "temp" SOMEWHERE
   --> ON THE CARD (MAY BE OFFSCREEN IF YOU LIKE)

   --> CHANGE kImgWidth TO CHANGE ICON SIZE

   constant kImgWidth = 80

   lock screen
   clone image "temp"
   set the lockLoc of last img to true
   set the resizeQuality of last img to best
   set the filename of last img to pImgFileName
   set the width of last img to kImgWidth
   put the formattedheight of last img into tH
   put the formattedwidth of last img into tW
   set the height of last img to kImgWidth/tW * tH

   --> THIS 'FREEZES' THE SIZE OF THE LAST IMG
   set the imagedata of last img to the imagedata of last img

   set the icon of btn pButtonName to the id of last img
   unlock screen

end makeAndSetIcon

and...

 > on 11/19/04 3:55 PM, Mathewson wrote:
 >
 >
 >>Dear RR-ers,
 >>I find that if I import an image (GIF/JPG) into a RR
 >>stack that has multiple cards a resize problem:
 >>
 >>e.g. I import an image of size 500 x 500 to card 1 and then
 >>send
 >>
 >>set width of img "Richmond" to 200
 >>set height of img "Richmond" to 200
 >>
 >>it resizes OK (unsurprising really!) - if I then go to the
 >>next card (Card 2) and then return (GO PREV) my image has
 >>reverted to 500 x 500:
 >>
 >>BUMMER !
 >>
 >>any advice????


Hmmm.

Mathewson's problem can be fixed by adding a single statement after his 
two set width of img statements:

set the lockloc of img "Richmond" to true




More information about the use-livecode mailing list