Art Screen Prints – Cross Platform Mugs App Case Study
Art Screen Prints based in Guisborough here in the North East specialise in producing print based fund raising merchandise for schools, clubs and other associations. One such product is ceramic mugs printed with the pupils drawing. In order to best represent the potential end product the need to produce Parental Order Forms (POF’s) that are personalised with the pupil’s details, and as close as possible to a final representation of the Mug printed with the pupils drawing. We would also need, within the same workflow, to print the final print ready templates in PDF format for use in the printing process,
|Client||Art Screen Prints – Guisborough based School and Fundraising Print|
|Platforms||Apple Mac, Windows|
|Technologies||C#, Mono, GTK+, .Net, ImageMagick|
|Development||Desktop Software, Mac Software, Windows Software, Cross Platform Software|
One of the unique requirements of this software development was the fact that the client used a mixture of both Apple Macs, and Windows based PC’s and as such this tool would potentially need to run, in the same manner, across both platforms.
The workflow is in essence two fold, presented with a folder of pre-scanned images (grouped by Class, or other equivalent organisational hierarchy), the desktop application we developed would need to take this feed of images, process them, and generate one, or both of;
- Print Ready, PDF Formatted print template for the actual scaled image to appear on the Mug
- A Parental Order Form to be distributed to the schools representing a final printed mug as closely as possible.
To do this we built the application utilising the Mono framework (a Cross platform representation of the C# language that allows applications to be built from a single codebase under Windows, Mac, and Linux). However as this was a desktop application and we had to consider the User Interface (UI) it was also necessary to make a decision on the UI framework. In the end we settled on GTK as the best performing, simplest, multi platform graphical interface framework, for what was as an interface quite simple.
The application itself was mostly a wrapper around pre-generated ImageMagick (A cross platform software suite for manipulating images programmatically) commands that we built to create both the print template, and the POF. Particularly challenging was the need to take a flat two dimensional image, and create the effect of wrapping and warping the image ‘around’ the Mug so as to represent what the human eye would see in the flesh.
In addition, owing to the batch processing and time it would take, we had to ensure to user asynchronous event based programming within the apps interface to ensure that a consistent update on progress was fed back to the user, without the application timing out, or ceasing to respond as it would with lengthy synchronous waits.
Thanks to our success the project grew to encompass a sister project for the generation of Calendar templates, and associated order forms.