shithub: riscv

Download patch

ref: 00161ca7fcd1422bfede7b50776fbf2f871e67c9
parent: c9b707cd5632a84d44ab089e02e65407dcc4ed54
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);