Copying an image, or part of it, to the clipboard
David Epstein
dfepstein at gmail.com
Fri Mar 9 18:49:38 CST 2007
Many thanks for the insights on image opacity. Here's another image
problem I've encountered. Using MC 2.5 on Mac OSX 10.4.
I want to be able to copy part or all of an image to the clipboard.
An image is visible in stack "LBROW". A handler catches mouse action
on that image, and if the user drags out a rectangle a translucent
graphic "pickRect" is created to designate that sub-area of the image.
The script below is supposed to (1) load the entire image to the
clipboard if the user has not created a "pickRect" graphic; and (2)
load that sub-area of the image if the user has created a "pickRect"
graphic. Case (1) works as expected. Case (2) does not; some blank
image seems to be loaded to the clipboard instead.
But why? When debugging this script, it is evident that the import
snapshot statement is indeed creating a new image of the correct
subarea. Why doesn't "set the clipboardData["image"] work on it?
Another puzzle: when debugging, MC 2.5 gives me an "execution error"
when it gets to the end of the handler.
on copyImage
if there is not a graphic "pickRect" of stack "LBROW" then
set the clipboardData["image"] to image 1 of group "pdfGroup" of
stack "LBROW"
else
set the defaultStack to "LBROW"
put shiftedRect(the rect of graphic "pickRect",the topLeft of
stack "LBROW") into r
delete graphic "pickRect"
import snapshot from rect r
set the clipboardData["image"] to last image
delete last image
end if
choose browse tool
end copyImage
function shiftedRect r,s
-- used to convert to screen coordinates the coordinates of rect r
in a stack whose topLeft is at s
-- eg for use in import snapshot
repeat with i = 1 to 4
add item (1 + (i+1) mod 2) of s to item i of r
end repeat
return r
end shiftedRect
Any insights about this would be greatly appreciated.
David Epstein
More information about the metacard
mailing list