SDLピクセルデータからImageMagick画像を生成しようとしています。これまでのGIFは次のようになります。(この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);