The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   OmniGraffle General (http://forums.omnigroup.com/forumdisplay.php?f=10)
-   -   Placing several images at once (script) (http://forums.omnigroup.com/showthread.php?t=21126)

RobTrew 2011-05-17 02:30 PM

Placing several images at once (script)
 
[B]File > Place image ...[/B] in the OG menu appears to allow the placement of only one image at a time.

I had to place a number of images on several canvases today, and wrote a script to allow for selecting and placing several images at once, rather than having to do it one by one.

The fruit of this laziness and impatience is below. I was bringing images in as thumbnails, scaled to 20%. You can adjust the scaling by editing the [I]prScale[/I] property at the top of the script.

[CODE]property pTitle : "Place several images Ver 0.6" -- IN OMNIGRAFFLE
property plngAcross : 4 -- number of thumbnails to place in a row
property prScale : 0.2 -- thumbnail size as a proportion of full size
property pblnShadow : false


-- Ver 0.6 Compatible with Launchbar's 'Instant Send' function
-- Select some files in the Finder,
-- activate 'Send to' with a double-tap,
-- Launchbar Preferences > Shortcuts > Modifier taps > Instant send
-- and select the script with its assigned abbreviation.


on run
-- CHOOSE SOME IMAGES (SELECTING SEVERAL IMAGES FROM THE FILE DIALOG)
tell application id "sevs"
activate
set lstFiles to (choose file with prompt "Place one or more images" with multiple selections allowed)
end tell

PlaceFiles(lstFiles)
end run

on open (lstFiles)
PlaceFiles(lstFiles)
end open

on PlaceFiles(lstFiles)
-- PLACE ALL THE SELECTED IMAGES IN A NEW DOCUMENT
tell application id "OGfl"
activate
tell front canvas of (make new document with properties {automatic layout:false})
set {rOriginX, rOriginY} to {0, 0}
set lngMaxHeight to 0

set i to 0
set my text item delimiters to "/"
repeat with oFile in lstFiles
try
-- GET THE DIMENSIONS OF THE IMAGE
set strFile to POSIX path of oFile
-- Image events
tell application id "imev"
tell (open file strFile)
set {rX, rY} to dimensions
close saving no
end tell
end tell

-- SCALE DOWN TO THUMBNAIL
set {lngWidth, lngHeight} to {rX * prScale, rY * prScale}

-- AT THE END OF THE ROW RETURN TO LEFT HAND PAGE, AND MOVE DOWN A ROW
if i ≥ plngAcross then
set rOriginX to 0
set rOriginY to rOriginY + lngMaxHeight
set lngMaxHeight to 0
set i to 0
else
-- RECORD THE MAXIMUM DEPTH IN THE CURRENT ROW OF THUMBNAILS
if lngHeight > lngMaxHeight then set lngMaxHeight to lngHeight
end if

-- CREATE A THUMBNAIL with [folder/filename] of source image in url
set strPathEnd to (items -2 thru -1 of (text items of strFile)) as string
make new shape with properties {origin:{rOriginX, rOriginY}, size:{lngWidth, lngHeight}, draws stroke:false, fill:no fill, draws shadow:pblnShadow, image:strFile, url:strPathEnd}

-- AND INCREMENT THE HORIZONTAL POSITION
set rOriginX to rOriginX + lngWidth
set i to i + 1
on error
display alert strFile & " does not appear to be a graphic file ..."
end try
end repeat
set my text item delimiters to space
end tell
end tell

end PlaceFiles
[/CODE]

RobTrew 2011-05-17 07:50 PM

Ver 0.2 above tightens up the vertical spacing of the thumbnail grid.

RobTrew 2011-05-18 12:39 AM

And Ver 0.3 places the path of the source file in the URL field of the shape.

(i.e. each placed image is automatically assigned an 'opens URL' action - this is helping me to rapidly generate HTML image maps from the thumbnail grid).

[COLOR="White"]--[/COLOR]

RobTrew 2011-05-29 02:04 PM

Ver 0.6 is now compatible with Launchbar's 'Instant Send' function[LIST=1][*]Select some files in the Finder,[*]activate LaunchBar's 'instant send' with a double tap [as specified under Launchbar Preferences > Shortcuts > Modifier taps > Instant Send][*]select this script with its assigned abbreviation.[*]The linked thumbnails will appear in a fresh OmniGraffle canvas[/LIST]
PS if you are not using Launchbar, you can still save this script in application format, and use it as a droplet - dragging files and dropping them on its icon.

[COLOR="White"]--[/COLOR]

deniseburton 2011-07-21 02:05 PM

Link to Image File for Place Image
 
Is there a way to be able to place the images as "link to image file" using your script?

RobTrew 2011-07-22 08:16 AM

[QUOTE=deniseburton;99812]Is there a way to be able to place the images as "link to image file" using your script?[/QUOTE]

Probably worth checking with the ninjas through [B]Help > Send Feedback[/B], but my impression is that assigning a file name to the [I]image[/I] property always loads the image rather than linking to it ...

(Can't immediately see an alternative approach).


All times are GMT -8. The time now is 10:19 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.