Я пытаюсь сгенерировать ImageMagick изображения из SDL данных пикселей. Вот как выглядит GIF. (Этот GIF медленнее, чем приведенный ниже.)
http://www.starlon.net/images/combo.gif
Вот как это должно выглядеть. Обратите внимание на изображение выше, что пиксели кажутся наложенными поверх других пикселей.
http://www.starlon.net/images/combo2.gif
Вот где фактически создается GIF.
void DrvSDL::WriteGif() {
std::list<Magick::Image> gif;
for(std::list<Magick::Blob>::iterator it = image_.begin(); it != image_.end(); it++) {
Magick::Geometry geo(cols_ * pixels.x, rows_ * pixels.y);
Magick::Image image(*it, geo, 32, "RGB");
gif.push_back(image);
LCDError("image");
}
for_each(gif.begin(), gif.end(), Magick::animationDelayImage(ani_speed_));
Magick::writeImages(gif.begin(), gif.end(), gif_file_);
}
А вот где находится большая капля.
image_.push_back(Magick::Blob(surface_->pixels, rows_ * pixels.y * surface_->pitch));
А вот как я инициализирую поверхность SDL.
surface_ = SDL_SetVideoMode(cols_ * pixels.x, rows_ * pixels.y, 32, SDL_SWSURFACE);