2017-05-03 46 views
0
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()); 

嗨,我有一個問題成團塊,當我嘗試寫圖像的列表,ImageMagick的(7.0.3版)Magick ++ STL.h writeImages功能BLOB。它不能正常工作,似乎只有一幀被寫入blob。但是使用相同的圖像列表,將它們寫入gif文件就可以。有人可以幫我嗎?怎麼寫圖片爲GIF使用ImageMagick Magick ++

+1

問題解決。我失敗的原因是我沒有做img-> magick(「GIF」),這導致寫入blob的失敗正確。 –

+0

找到修復的好工作。請將您的解決方案作爲答案發布,並接受它。這將有助於未來讀者解決同樣的問題。 – emcconville

+0

[鏈接](http://stackoverflow.com/questions/43883998/imagemagick-convert-jpg-images-to-gif-slow)你能幫我解決這個問題嗎? @emcconville –

回答

0

問題解決了。我失敗的原因是我沒有做img-> magick(「GIF」),這導致寫入blob的失敗正確。