Channel Shuffle was inspired by the channel shuffle node in Substance Designer and does the same thing plus some extra stuff. It takes in two images and lets you select four channels from those two images that will form a new image. You can also choose to invert a channel and if you use the CLI version you can resize the output image using nearest neighbor.
There is a CLI (command line interface) version and a GUI (graphical user interface) version.
The CLI version
can be useful if you want to implement some channel shuffling straight into some pipeline step. I for instance plan to use this application to automatically take five textures (albedo, normal, roughness, metallic and ao) and automatically shuffle them into two textures (roughness in the albedos alpha channel, and metallic and ao with the normal), without our artists having to care about what textures to put into what channels.
The GUI version
is useful for those who might want to do that shuffling manually, or if you want to shuffle or flip some channels in a normal map that might be wrong, or quickly put something into the alpha channel of some texture, or if you want to invert one or more channels and so on.
I did my best making the application light, fast, easy to use and portable. And it really is all of those things (except Qt I guess, not very light :P ). It's written in C++, the GUI uses drag and drop, it has hotkeys and previews for everything. In the background the GUI uses the CLI version which is 200kB in size and can be removed and used on its own, without the 38MB added by Qt when unzipped.
It can be downloaded from my website at http://orsvarn.com/entry/channel-shuffle/
The application and its source is public domain, so you can do whatever you want with it. The source can be found here: https://github.com/lukors/channel_shuffle
Feel free to ask questions, give feedback and discuss the tool in this thread.