Getting the dimensions of a picture file
You might want to know the dimensions of a picture the user is selecting, for example to check it is not too large or too small for it's intended use.
This custom function is called with one parameter pFilePath, the path to an image file.
get imageFileDimensions("/Disk/Folder/Picture File")
put item 2 of imageFileDimensions(pMyFile) into theHeight
set the naturalDimensions of me to imageFileDimensions(it)
The imageFileDimensions function gets the width and height of a picture file in any of the formats that LiveCode can import. It does this by importing the file as an image object and checking the new image's width and height properties.
When the file is imported, the new image appears on the screen. Since it's only going to be there long enough to get the height and width, we don't want the user to see the annoying flash of the image appearing and disappearing, so the first thing this handler does is to use the lock screen command to prevent changes from appearing in the window.
With the screen safely locked, the handler uses the import command to import the file into the stack, where it becomes a new image.
import paint from file pFilePath
put the width of last image into tWidth put the height of last image into tHeight
Once the handler has got the properties, we no longer need the imported image, so we delete it. This removes the image object we created with the import command, leaving the original picture file where it was. We can then use the unlock screen command as no more screen updates will be made.
delete last image unlock screen
Finally, the handler returns the width and height, separated by a comma (the , operator). The calling handler can use both, or (if it only needs one of the height or width) can check item 1 or item 2 of the return value.
return tWidth, tHeight
function imageFileDimensions pFilePath local tWidth, tHeight ## so user doesn't see screen updated lock screen ## create a new image import paint from file pFilePath put the width of last image into tWidth put the height of last image into tHeight delete last image unlock screen return tWidth, tHeight end imageFileDimensions