diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2019-02-28 20:11:31 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2019-02-28 20:11:31 (GMT) |
commit | 8707ffbff8e5ed096a24a654787deb36aa410350 (patch) | |
tree | 2add022f26fc8ff0ba2f07347c2020fc3f5d4b8f | |
parent | de85c377c4699a556688087f061eb4a9b99a7e47 (diff) | |
download | blt-8707ffbff8e5ed096a24a654787deb36aa410350.zip blt-8707ffbff8e5ed096a24a654787deb36aa410350.tar.gz blt-8707ffbff8e5ed096a24a654787deb36aa410350.tar.bz2 |
support animated gif
-rw-r--r-- | tkagif/tkagif.C | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/tkagif/tkagif.C b/tkagif/tkagif.C index 4e81829..8b16a29 100644 --- a/tkagif/tkagif.C +++ b/tkagif/tkagif.C @@ -104,6 +104,7 @@ int TkAGIF::create(int argc, const char* argv[]) istringstream str(s); str >> height_; } + width_ = height_ = 46; // *** Header *** { @@ -125,7 +126,7 @@ int TkAGIF::create(int argc, const char* argv[]) // color resolution (3): number bits-1 // sort flag (1): 0 not ordered, 1 ordered decreasing importance // size of global color table (3): size 2^(x+1) - char pkg=0xF7; + char pkg=0xF6; out_->write(&pkg,1); // BG Color @@ -210,14 +211,14 @@ int TkAGIF::colortable(int argc, const char* argv[]) } // *** Global Color Table *** - for (int ii=0; ii<256; ii++) { + for (int ii=0; ii<128; ii++) { out_->write((char*)red+ii,1); out_->write((char*)green+ii,1); out_->write((char*)blue+ii,1); } // *** Application Extension Block *** - { + if (0) { // Extention Introducer char ext = 0x21; out_->write(&ext,1); @@ -272,7 +273,7 @@ int TkAGIF::add(int argc, const char* argv[]) } // *** Graphic Control Extension *** - { + if (0) { // Extention Introducer char ext = 0x21; out_->write(&ext,1); @@ -338,22 +339,23 @@ int TkAGIF::add(int argc, const char* argv[]) // *** Image Data *** { // LZW Min Code Size - char lzw = 0x08; + char lzw = 0x07; out_->write(&lzw,1); // Data for (int jj=0; jj<height_; jj++) { int ii =0; while (ii<width_) { - char clear = 0x80; - out_->write(&clear,1); int ww = width_-ii; int ll = ww < 0x2E ? ww : 0x2E; - char ss= ll+1; - out_->write(&ss,1); + unsigned char ss= ll+1; + out_->write((char*)&ss,1); + char clear = 0x80; + out_->write(&clear,1); for (unsigned char kk=0; kk<ll; kk++) { - char pix = rand() % 200; - out_->write(&pix,1); + // unsigned char pix = 0x7B; + unsigned char pix = rand() % 128; + out_->write((char*)&pix,1); ii++; } } |