summaryrefslogtreecommitdiffstats
path: root/tkagif
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2019-02-28 20:11:31 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2019-02-28 20:11:31 (GMT)
commit8707ffbff8e5ed096a24a654787deb36aa410350 (patch)
tree2add022f26fc8ff0ba2f07347c2020fc3f5d4b8f /tkagif
parentde85c377c4699a556688087f061eb4a9b99a7e47 (diff)
downloadblt-8707ffbff8e5ed096a24a654787deb36aa410350.zip
blt-8707ffbff8e5ed096a24a654787deb36aa410350.tar.gz
blt-8707ffbff8e5ed096a24a654787deb36aa410350.tar.bz2
support animated gif
Diffstat (limited to 'tkagif')
-rw-r--r--tkagif/tkagif.C24
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++;
}
}