ref: 6fa9bcbeba65ca0debae552298795e40adcd3d8a
parent: 8c45697753f513c6efdd8a1917382d43f9251df4
author: cinap_lenrek <cinap_lenrek@localhost>
date: Thu Aug 25 23:28:09 EDT 2011
gif: fix setting of transparency channels when writing gifs. (from rsc p9p)
--- a/sys/src/cmd/jpg/gif.c
+++ b/sys/src/cmd/jpg/gif.c
@@ -229,7 +229,7 @@
* r is used only for reference; the image is already in c.
*/
void
-whiteout(Rawimage *r, Rawimage *c)
+blackout(Rawimage *r, Rawimage *c)
{int i, trindex;
uchar *rp, *cp;
@@ -241,9 +241,9 @@
for(i=0; i<r->chanlen; i++){ if(*rp == trindex){*cp++ = 0x00;
- *cp++ = 0xFF;
- *cp++ = 0xFF;
- *cp++ = 0xFF;
+ *cp++ = 0x00;
+ *cp++ = 0x00;
+ *cp++ = 0x00;
}else{*cp++ = 0xFF;
cp += 3;
@@ -254,7 +254,7 @@
for(i=0; i<r->chanlen; i++){ if(*rp == trindex){*cp++ = 0x00;
- *cp++ = 0xFF;
+ *cp++ = 0x00;
}else{*cp++ = 0xFF;
cp++;
@@ -380,7 +380,7 @@
if(nineflag){ if(images[0]->gifflags&TRANSP){addalpha(rgbv[0]);
- whiteout(images[0], rgbv[0]);
+ blackout(images[0], rgbv[0]);
}
chantostr(buf, outchan);
print("%11s %11d %11d %11d %11d ", buf,@@ -392,7 +392,7 @@
}else if(cflag){ if(images[0]->gifflags&TRANSP){addalpha(rgbv[0]);
- whiteout(images[0], rgbv[0]);
+ blackout(images[0], rgbv[0]);
}
if(writerawimage(1, rgbv[0]) < 0){fprint(2, "gif: %s: write error: %r\n", name);
--
⑨