Hi dlemstra thanks for the response.
I tried using ReadImages along with the Magick++ image interface, and magickcore freezes. Same behavior with 3 different input files. I think I've discovered a separate bug deeper in the core; I'll have to report that separately. My psuedocode is roughly:
Read image file to uchar*
Uchar* to magick++ blob
Construct Magick++ image using that blob --> truncation of multi images happens here
ReadImages( img.constImageInfo() ) --> MagickCore hangs here
I also tried using ReadImage() instead of ReadImages() and it hangs in the same spot.
So, unfortunately, I'm back to where I started. I'd really hate to have to duplicate parts of Magick++ in order to work around this limitation. In its current state, Magick++ will corrupt any multi-frame images. For example, this code corrupts an animated gif:
Code: Select all
auto img = Magick::Image( "path/to/myfile.gif" );
img.write( "path/to/myfile2.gif" ); // corruption: this only writes the first frame!
This is a serious limitation of Magick++. I guess i'm just trying to figure out why this change was introduced recently, and then determine if I can continue to use Magick++ in its current form. I could look into submitting a pull request if you are open to the idea restoring this functionality into Magick++, but I won't bother if you are moving away from this capability going forward. I just hate the idea of writing my own wrapper around MagickCore, since I thought that was the intent of Magick++ from the beginning.
Thoughts? Thanks again!