Automating an Automatic Process?
Question: How would you use Thumbscrew with Automator or AppleScript?
Question: How would you use Thumbscrew with Automator or AppleScript?
Sorry if that was a hassle for anyone. The appcast was being requested from an older machine that had been decommissioned. The URL is now being hosted with my other sites. 1.0 is still the latest version.
After nearly 3 years in the oven, it’s baked.
From the manual:
Screw it! Making thumbnails for the Web used to be painstakingly slow if you wanted to apply borders, drop shadows, transformations, alpha channels, and so on. Or if it was fast, you ended up with a boring field of rigid columns and rows. Thumbscrew allows you to quickly and easily chew through a bunch of images, applying scaling, random rotation, border, and drop shadow to each – even resizing the original, and processing the batch as a whole afterwards.
Images can come from a variety of places:
Drag images (or folders of images) in from the Finder
Paste images from the Clipboard
Paste or drag in URLs to images
When images are being processed, the image well in the main window will be briefly replaced with the original, and as the thumbnail is created, with the thumbnail. A progress bar at the bottom tracks overall progress of the batch.
After a batch has run, a batch file is created in ~/Library/Application Support/Thumbscrew/Batches/ and the selected post-flight script is run with this file as its only argument.
What it looks like:
![]()
What it does:
Not much in the way of new features:
Manual included and accessible from Help menu
Proper handling of Paste keybindings (command-V vs. command-option-V)
New appcast URL.
Get it while it’s hot.
The new version is out. It adds SparklePlus support, which will let you auto-update (at intervals, or manually), and if you choose, you can share back some anonymous profiling information (processor type, OS version, &c) so I can better know my user base. There is absolutely no personal information sent back (other than what I already know: you’ve got enough taste to use a Mac).
Also, I’ve finally got my post-processing script support finished. You can script the batch any way you like. Thumbscrew finishes a batch by calling the selected script directly, with one argument, the path to the batch file:
/path/to/script_file /path/to/batch_file
All the scripts live in ~/Application Support/Thumbscrew/Scripts, and all the batches live in ~/Application Support/Thumbscrew/Batches. Thumbscrew ships with a sample script, save_to_desktop.py, that copies the batch file from the batches folder to the Desktop:
#!/usr/bin/python
import sys
import os.path
batch_file_path = sys.argv[-1]
desktop_file_path = os.path.join(os.path.expanduser(u'~/Desktop'),
os.path.split(batch_file_path)[-1])
inp = open(batch_file_path)
contents = inp.read()
inp.close()
outp = open(desktop_file_path, 'w')
outp.write(contents)
outp.close()
Since the script is called directly, the only thing to watch out for is that its executable bit is turned on. The batch file is an XML document with information about the batch:
<thumbscrew_batch name="20070605223040">
<image name="Untitled14">
<version name="original" path="/Users/zbir/Pictures/Thumbscrew/Untitled14.png"/>
<version name="thumbnail" path="/Users/zbir/Sites/images/thumbnails/Untitled14_thumbnail.png"/>
<version name="resized" path="/Users/zbir/Sites/images/photos/Untitled14_resized.png"/>
</image>
</thumbscrew_batch>
Also, when images are pasted into Thumbscrew, it gives the pasted image a name, and stores it in ~/Pictures/Thumbscrew, so if you’re making thumbnails or resized originals that should be living where the original does, it won’t be relegated to an unfriendly /tmp directory.
Last, but not least, I’ve changed the icons a little, from our recent trip to Borneo. The application icon is being worked on, as well, and will show up in a later release.
Thumbscrew’s been making some rounds. Thanks, everyone!
FreeMacWare: “This is a great way to make a thumbnail if you are going to post the picture online. It’s fast too.”
which was picked up by TUAW and Mike Power
The Apple Blog “ThumbScrew rocks my world, and I’m so happy to hear that it’s been updated”
Random Murmurings tried to tie it together with flickr.
Hit Any Key: “Thumbscrew is one of those handy little photo tools that can make you look good, and fast!”
pedersondesigns: “My new favorite application.”
Stability of Our Times: “One cool Mac app: Thumbscrew. Great fun and ease!”
MacReviewCast: Right around the 24:22 mark, listen to Jeff Powell. “Real small, single purpose app, very well done. … One of those apps that tries to do one thing, and does a pretty good job of it.”
ReelSmart: “makes a very cool thumbnail image instantly”
And those are just the sites in English!
Italian: ZeroNáve and inblogtecno
Spanish: Applesfera, Comando + Q, and Think Wasabi
Have at it. Includes GIF support for thumbnails.
I’m changing the whole Web Page output story, and it’s partially underway, but it’s not finished yet. Basically, I’m making it possible for you to do whatever you want (hopefully) with the end product of each batch run. For the curious, look in /tmp after a batch, and you’ll see an XML file describing all the images processed in that run. This file will be passed to a script that you choose (or write!), so you can do anything you want with the results.
[Update: Fixed the sidebar link. Thanks, Lorne]
It’s been a long time coming, I know. Thanks so much to everyone who waited patiently. But it’s back, and it’s good. Thumbscrew 1.0b11
![]()
It’s Universal now. The problems I ran into with running subprocesses using a bundled Python are gone. I reimplemented the thumbnailer kernel using ObjC with the help of Scott Stevenson. Huge thanks, Scott.
![]()
It’s got Growl support. We’ll let you know bit by excruciating bit how Thumbscrew is doing, and when a batch is done.
![]()
Web page output is currently suspended while I evaluate the best way to generate output. I’ve used a variety of means in the past, and want something that is approachable by lots of users. Zope PageTemplates are pretty easy, and the syntax for developing new templates is pretty straightforward. XML and XSLT are maybe a little more universal, but I really don’t know.
Take her out for a spin and let me know what you think!
Okay, you mangy, teeming millions. I have heard your cries, though they sicken me. “Give us GIF! Give us GIF! Have pity on the throwbacks still using Internet Explorer!” Your wails and gnashing of teeth have not fallen upon deaf ears. Turns out, it was stupid simple to implement. BEHOLD! Thumbscrew supports GIF!
![]()
I’m warning you, though. It ain’t pretty. If you need any kind of color fidelity, you’re better off with JPEG and an opaque background color. These GIFs, while small, are uggs. With a capital UGG.
You can do transparent
![]()
Or opaque backgrounds
![]()
Okay? Happy? If you really want to make the world a prettier place, encourage your friends and colleagues to switch. At least to Firefox, if not to a Mac.
By the way, I’m still getting the Web page thing done. I know a lot of you probably don’t use it, but I do, and I need it if I’m going to keep talking to you crazies. Expect a new version by Friday.
A lot of people ask me for GIF support for one of two reasons:
Smaller file size than the default PNG
More widely compatible with browsers on that other OS.
While I can understand and sympathize, Thumbscrew won’t support GIF output until Apple’s CoreGraphics does. That said, there are (to me) compelling reasons not to use GIFs for a photo thumbnailing application, especially one that generates drop shadows:
GIFs don’t actually support an alpha channel, so even if you did get GIF output, you only get to replace one indexed color with a transparency. This would lead to ugly output unless you matched the background, in which case, why bother with transparency at all?
GIFs are not the best image format for photo-realistic content.
My advice to users who want smaller file size (or more widely compatible file format) is to use JPEGs with an opaque background color to match your site.
I will be evaluating pngcrush to see if it would at all be applicable. You all aren’t the only ones who’d like to see the size of the PNGs come down.
Wow, almost a month since the last post. Many apologies! PyCon gave me huge amounts of energy to put back into Thumbscrew, but work has been incredibly hectic, and the house is nearing its own dénouement, so it’s been a little on the back burner.
This past week, though, I was able to make the time to hack on it a bit more. The next beta is almost here. All the prefs are back and accounted for (not using the UserDefaultsController just yet), and I’ve added a much-requested pref to determine the suffix to be used for thumbnails. It’s now using subprocesses to handle the busy work, and distributed events to communicate back to Thumbscrew.
In the process of just getting The Simplest Thing That Could Possibly Work™ working, I prevented using the background Thumbnailer as a viable standalone solution for people who wanted to script it. This isn’t a long-term situation, just needed it up and running in the now.
Since I get sporadic feedback, and many of the feature requests are duplicates, I created a mailing list for anyone interested in communicating their wishes, comments, bug reports, &c.
http://lists.palladion.com/mailman/listinfo/thumbscrew-users
Alternately, you can send a message directly to:
thumbscrew-users-subscribe@lists.palladion.com
Hope to see the users joining so we can find out where Thumbscrew needs to go.