How does ImageMagick represent RGB image data internally?

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
tgiles

How does ImageMagick represent RGB image data internally?

Post by tgiles »

I ask this question as I'm working on improving the efficiency of a program I've created that uses ImageMagick as a final post-processing step for adding overlays to a processed RGB image. In my experimenting, it appears that things run much faster for the same operations if I pass in a pixel-interleaved image to ImageMagick, and export it as pixel-interleaved at the end, as compared to using plane-interleaved. (I'm using the Magick++ API btw)

I assume this is because ImageMagick represents the image data as pixel-interleaved regardless of how it is initially presented to it, is this true? If so, is there any way to force ImageMagick to store and operate on the data internally as plane-interleaved rather than pixel-interleaved, as that is the way I'd like to export the Image data - and do so as fast as possible (i.e. get rid of the pixel/plane interleaved conversions).

Thanks for the feedback!

-Todd
Post Reply