ShotGlass

I’ve been using Cropper for a while to take simple cropped screenshots, but when I want to take a screenshot of my whole screen, I keep having to go back to my old screenshot script which uses ImageMagick and commandline ftp, because I need to upload the screenshot. Recently I realized I want to upload the images to Menalto gallery on the geoShell site and I wanted to share that ability with other people, but my script requires ImageMagick and Perl to be installed and properly configured, which seems a bit to ask of your average Windows user ;)

I started out to write a plugin for Cropper but ended up deciding there were just too many things I didn’t like:

  • The plugins are rather more complicated to write than they need to be, partly because they have to handle ALL the output…
  • The thumbnail window is locked at the center of the screenshot window
  • There’s not really any way to take a shot of the full screen
  • There’s no command-line ability (you have to bring up the cropper window to take a screenshot)

The end result is that I’ve written myself a screenshot application. Now, I wrote it mostly for myself, at first, so I wrote it in C#, using Beta 2 of Visual Studio. Eventually I decided to “fix” the shortcomings I saw in other implemenations, but I don’t really want to back-port it to .NET 1.1, so in order to use it, you need to have .NET Framework 2 installed.

Features

  • Takes screenshots (obviously).
  • Optionally crops the screenshot to the ShotGlass Window.
  • Can also (optionally) make thumbnails, and has a handy thumbnail window you can position anywhere within the main window.
  • When taking an uncropped screenshot of the full screen, uses the main window as the thumbnail cropper.
  • Can automatically resize the screenshot area to match the window (or control) you want to take a screenshot of (just put the top left corner of the ShotGlass window over the window’s title bar).
  • Uses three different types of very simple plugins:
    • Image processing “Mixer” plugins. I’ve provided a watermark plugin which does images and text, and a highlight plugin which uses the thumbnail area to highlight a portion of the screen in the shot. But anything you can imagine in image processing can be done with an extremely simple interface.
    • Image output “Glass” plugins which control the file output. The default one is to output to the clipboard, but I’ve already included ones for PNG (Portable Network Graphics) and Bmp output, and I’ll put one in later for Jpg with compression.
    • File handling “Drinker” plugins which can upload the file, or basically do whatever you want to do with the screenshot files once they’re saved. I’ve already included one for FTP uploading, and I’m working on Gallery uploads for my original geoShell purposes.
  • Has command-line parameters for various features:
    • Named configs, so you can specify a config (which is saved on-exit) using /config:configname This allows you to set up different types of shots which you can take later, because …
    • Can take a screenshot without ever showing the UI if you pass the parameter: /instant
    • Can force a full screen shot using: /fullscreen

I’ll put up more information here later, including screenshots of the very nice configuration panel and the right-click menu (which includes documentation of the hotkeys), but for now I want to get on with getting this beta release out so I can get some feedback.

License

ShotGlass is open source, under the MIT License and the source code is available here

Download