web analytics
Press "Enter" to skip to content

Introducing Batch Image Processing with Composable

Ryan O'Shea

When you’re working with large numbers of images, using standard tools like ImageMagick can often feel like an endless cycle of combing through  man pages and StackOverflow posts to find the magical sequence of flags to get the results you want. And when you finally get your command working, coming back to it weeks or months later can leave you feeling lost. I’ve struggled with this on projects before; each time I’ve taught myself a little of ImageMagick’s syntax has felt like the first time.

CLIs just aren’t the right tool for the job when it comes to processing pipelines for visual data. That’s why we just completed work on our very first full-featured image processing system in Composable Enterprise. We’ve built first-class support for the most common image processing operations into our already powerful dataflow execution engine. Now, you can build complex, multi-stage processing pipelines as simply as drag-and-drop on our Dataflow Designer canvas. Each flow gives you a visual representation of the processing steps, the order in which they’re applied, and access to the way your files look at every stage in the pipeline. And, your image processing tasks can be shared and improved on by others on your team, and the visual dataflow layout ensures that everyone can easily understand how all the steps are laid out — something more elusive when sharing command line statements.

Creating a dataflow to manipulate images couldn’t be simpler. Just get access to your image file(s) using one of our existing file modules, like the File Uploader, File Retriever, or Directory Lister. Then, once you have a URI or FileReference pointing at an image, you can simply use that as the input to one of our new image processing modules. Let’s take a look at some of the modules we’ve created to leverage the new image processing capabilities. You can find these under the “Images” section of the Designer palette.

In addition to these basic modules, we have support for stylistic changes to your images as well.

We also support some higher-end post-processing jobs, like content-aware resizing:

Of course, we couldn’t tackle the world of image files without allowing for easy access to data points for analytical work. The new Image Metadata module can extract all relevant image metadata from a file, including camera EXIF data, publisher XMP and IPTC tags, and filesystem metadata. Don’t spend more time writing Python scripts to extract these features — Composable makes everything you’d want easily accessible.

Of course, none of these tools are limited to working on just one image. Composable’s dataflow model lends itself to defining repeatable batch processes that operate on whole folders or drives of images at once. With a simple Directory Lister and ForEach module, you can set up your processing pipeline to loop over every image in a folder or even an entire drive. The Multi-file Uploader can also be used to submit many images at a time, without the need for zipping or emailing your images before processing. See the first image in this post for an example of working on an entire directory of images at once.

If you’re ready to give image processing in Composable a try, head over to our download page to get a trial instance set up on your laptop. Or, try our cloud instance or look for us on AWS and Azure.

Ryan O'Shea

Ryan O'Shea

Ryan is a software engineer at Composable with a degree in Electrical Engineering from Princeton University.
Ryan O'Shea