Scaling Imported Images
hh
hh at hyperhh.de
Tue Aug 20 07:01:30 EDT 2019
> Bob S. wrote:
> I seem to remember some time ago there was a key combination
> so that when you sized an image, instead of cropping it, it
> would scale it. Am I imagining things? I can create a new
> scaled image in Preview, so no big deal.
Resizing with the pointer tool has these modifier specials:
use with shift => resizes proportional
use with option => resizes to square
use with mac-cmd/win-nux-ctrl => crops
Posssibly this is not what you want, because this operation only
changes the display, not the size of the original imported image.
So the size of the image in the stack is always the same.
To make the *new size* to be 'persistent', that is
new width => formattedWidth and new height => formattedHeight
use
set imagedata of img imgName to the imagedata of img imgName
Here is the complete script I use for scale or fit incl. the above.
-- pRetain is true or false (=persistence of new size)
-- pImgID is the long id of an image
-- pHow is one of f[actor],w[idth],h[eight],l[arger],s[maller],?
-- pVal is a positive Number
on scaleOrFitImage pRetain,pImgID,pHow,pVal
lock screen; lock messages
put the formattedWidth of pImgID into w
put the formattedHeight of pImgID into h
switch char 1 of pHow
case "f" -- scale with factor pVal
put pVal*w into w0
put pVal*h into h0
break
case "w" -- fit width to pVal
put pVal*h/w into h0
put pVal into w0
break
case "h" -- fit height to pVal
put pVal*w/h into w0
put pVal into h0
break
case "l" -- fit max(width,height) to pVal
if h > w then -- fit height to pVal
put pVal*w/h into w0
put pVal into h0
else -- fit width to pVal
put pVal*h/w into h0
put pVal into w0
end if
break
case "s" -- fit min(width,height) to pVal
if h < w then -- fit height to pVal
put pVal*w/h into w0
put pVal into h0
else -- fit width to pVal
put pVal*h/w into h0
put pVal into w0
end if
break
default -- current width and height
put the width of pImgID into w0
put the height of pImgID into h0
break
end switch
put the topleft of pImgID into TL
set width of pImgID to w0
set height of pImgID to h0
set topleft of pImgID to TL
if pRetain then
# width => formattedWidth and height => formattedHeight
set imagedata of pImgID to the imagedata of pImgID
end if
end scaleOrFitImage
More information about the use-livecode
mailing list