как записывать изображения в формате gif в blob с помощью imagemagick Magick++

  vector<Magick::Image> frames;
int delay = 20;
for(auto iter=taskList.begin(); iter != taskList.end(); ++iter){
/* hide some codes here*/
  frames.push_back(*img);
}
// write images to file, works fine
Magick::writeImages(frames.begin(), frames.end(), "xxx.gif");
Magick::Blob tmpBlob;
// write images to blob, I then decode the data in blob,  
// and write this blob to yyy.gif. The gif file only contains the first frame image.
Magick::writeImages(frames.begin(), frames.end(), &tmpBlob, true);
// the length is far too small 
LOG_DEBUG("blob data length: %d", tmpBlob.length());
// read from the blob into a imagelist, and print the size of the list
// the size is 1 
vector<Magick::Image> image_list;
Magick::readImages(&image_list, tmpBlob);
LOG_DEBUG("new frames length: %d", image_list.size());

привет, у меня проблема, когда я пытаюсь записать список изображений в BLOB-объект с помощью функции ImageMagick (версия 7.0.3) Magick++ STL.h writeImages. Работает некорректно, кажется, что в блоб был записан только один кадр. Но с тем же списком изображений запись их в файл gif работает нормально. кто-нибудь может мне помочь?


person Roy Huang    schedule 03.05.2017    source источник
comment
задача решена. Причина, по которой я потерпел неудачу, заключается в том, что я не использовал img-›magick(GIF), что приводит к неправильной записи в blob.   -  person Roy Huang    schedule 04.05.2017
comment
Отличная работа по поиску исправления. Пожалуйста, опубликуйте свое решение в качестве ответа и примите его. Это поможет будущим читателям с той же проблемой.   -  person emcconville    schedule 05.05.2017
comment
ссылка не могли бы вы помочь мне с этой проблемой? @emcconville   -  person Roy Huang    schedule 10.05.2017


Ответы (1)


задача решена. Причина, по которой я потерпел неудачу, заключается в том, что я не сделал img->magick("GIF"), из-за чего не удалось правильно написать blob.

person Roy Huang    schedule 08.05.2017