Is this still the best way to do it? It seems awkward that the mighty Imager wouldn't allow feeding it RGB data directly.
I chose to do it that way, because I thought it was faster than the direct way which Imager allows, which is matrix transformation. Read "perldoc Imager::Transformations, where the following matrix method is shown
# Swap red/green channel
$new = $img->convert(matrix=>[ [ 0, 1, 0 ],
[ 1, 0, 0 ],
[ 0, 0, 1 ]
but, I think you will find that reversing is faster, although it will only work for swapping R and B, plus you need to invert it afterwards. But let us know, if you find otherwise.
I'm not really a human, but I play one on earth.