MovingImages

Download MovingImages

MovingImages Documentation

MovingImages Ruby Gem Reference Documentation

Examples and documentation for image processing scripts

An introduction to the different components of MovingImages and how they interact

What is new in 0.3a?

MovingImages Ruby Gem

MovingImages now includes a ruby gem which makes it easy to generate the necessary json code for sending commands to MovingImages, and provides methods for sending the commands. The ability to create a chain of commands makes MovingImages very efficient.

Moved the command line tools to the Ruby Gem

The command line tools which are now part of the ruby gem are:

  • Add text watermark and scale addtextwatermark
  • Custom add shadow customaddshadow
  • Custom crop customcrop
  • Custom pad custompad
  • Do transition dotransition
  • Scale images scaleimages
  • Simple single cifilter simplesinglecifilter

These scripts have also been converted to use the Ruby API provided by the ruby gem.

Made TextWrangler Scripts

For people who don’t like using the terminal I have written a few scripts which can be run from within TextWrangler. The scripts are:

Made installation simpler

After downloading and moving MovingImages to Applications, installing MovingImages is now a single click in the MovingImages application. Uninstall is a single click followed by moving the MovingImages application to the trash.

Provided documentation for the MovingImages framework

MovingImages has an objective-c public header interface, with a section describing how to use it included in the documentation. Please contact me if you wish to use the MovingImages framework in your application.

Extended system tests

These texts are comprehensive, covering all aspects of the functionality provided by the MovingImages framework through interaction with the MovingImages launch agent.

Added ruby gem tests (not complete)

These tests are far from complete. There are a few tests that by themselves touch a broad range of the MovingImages ruby gem programming interface and generate a json output. So changes are picked up, but the guidance as to where something has changed is a bit coarse.

Added a maths parser library

A maths parser library has been added. The maths parser library makes it possible to specify equations with variables that are resolved at draw or render time that are applied to various attributes of drawing commands. Shape dimensions and positions,  color component values, destination and source rectangles for drawing images or rendering image filter chains. The maths parser library is written by Dave DeLong.

Added a get a list of the user interface fonts command

You can now use MovingImages to get a list of the availabe user interface fonts. MIMeta.listuserinterfacefonts

Added a snapshot command

The bitmap context now handles the snapshot command. The snapshot command takes a property which allows you to specify if you want to take a snapshot, draw a snapshot or clear a snapshot. CommandModule.make_snapshot(receiver_object, snapshottype: :takesnapshot)

Made MovingImages interface based around Associate Arrays

Alpha releases 1 and 2 had a command line interface to MovingImages. This alpha release has switched the interface to being based around Associative Arrays (otherwise known as dictionaries (objective-c), or hashes (ruby). The command line interface still works but the command line tool smig converts the command line options into a dictionary before sending the dictionary to the MovingImages launch agent. To use the new interface the json or plist is passed to smig using the performcommand sub command. The purpose of the MovingImages ruby gem is to make it easier to generate json which is then passed to smig. The moving images ruby gem method Smig.perform_commands is the method that sends the commands to smig.

Added a window object

A window object has been added to the MovingImages framework. The show window option has been removed from the bitmap context. The window object is an object type of ‘nsgraphicscontext’. The objective-c files to implement this object can be removed from the target without breaking any other functionality. CommandModule.make_createwindowcontext(rect: nil, width: 800, height: 600, xloc: 100, yloc: 100, borderlesswindow: false, name: nil)

Added a pdf context

A pdf context has been added to the MovingImages framework. The drawing commands for drawing to the pdf context are the same as drawing to the bitmap and window contexts. CommandModule.make_createpdfcontext(size: nil, width: 480, height: 640, filepath: nil, name: nil)

Added cleanup commands

When generating a list of commands, you can also add a list of cleanup commands. The cleanup commands are nearly always just close commands with supplied objects to be closed. The cleanup commands will be run whether the main list of commands completed without error or not. Using this feature minimizes the chances of memory leaks when writing scripts.

Rewrote documentation

The documentation has been rewritten to reflect the changes that the MovingImages interface is based around an associative array and away from command line options, the new documentation also reflects the move to using ruby as the scripting language for MovingImages.

Added testing of MovingImages in Yosemite

Tests etc. have been updated to work in Apple’s upcoming OSX operating system Yosemite.