Tweak test/data/artif*/gif-transparent-index.gif
diff --git a/script/make-artificial.go b/script/make-artificial.go
index 9de99ab..7ebfb13 100644
--- a/script/make-artificial.go
+++ b/script/make-artificial.go
@@ -959,7 +959,7 @@
flags := uint8(0)
duration := uint32(0)
- transparentIndex := uint32(0)
+ transparentIndex := uint8(0)
for s != "" {
term := ""
if i := strings.IndexByte(s, ' '); i >= 0 {
@@ -980,12 +980,12 @@
case term == "animationDisposalRestorePrevious":
flags |= 0x0C
case strings.HasPrefix(term, trans):
- num, remaining, ok := parseNum(term[len(trans):])
- if !ok || remaining != "" {
+ num, err := strconv.ParseUint(term[len(trans):], 0, 8)
+ if err != nil {
break outer
}
flags |= 0x01
- transparentIndex = num
+ transparentIndex = uint8(num)
case strings.HasSuffix(term, ms):
num, remaining, ok := parseNum(term[:len(term)-len(ms)])
if !ok || remaining != "" {
@@ -1002,7 +1002,7 @@
flags,
uint8(duration>>0),
uint8(duration>>8),
- uint8(transparentIndex),
+ transparentIndex,
0x00,
)
return stateGif, nil
diff --git a/test/data/artificial/gif-transparent-index.gif b/test/data/artificial/gif-transparent-index.gif
index a9f0e09..471ae7a 100644
--- a/test/data/artificial/gif-transparent-index.gif
+++ b/test/data/artificial/gif-transparent-index.gif
Binary files differ
diff --git a/test/data/artificial/gif-transparent-index.gif.make-artificial.txt b/test/data/artificial/gif-transparent-index.gif.make-artificial.txt
index 96f05c0..61f2ca8 100644
--- a/test/data/artificial/gif-transparent-index.gif.make-artificial.txt
+++ b/test/data/artificial/gif-transparent-index.gif.make-artificial.txt
@@ -1,36 +1,67 @@
# Feed this file to script/make-artificial.go
+# This GIF image has two frames. The first is 4x2 and contains 8 shades of red.
+# The second is 3x1, positioned at (1, 1), and nominally contains 3 shades of
+# blue but the middle pixel is transparent.
+
make gif
header
image {
- imageWidthHeight 4 1
- # Four shades of red and then green, cyan, blue, white.
+ imageWidthHeight 4 2
+ # 16 shades of red and then 16 shades of blue.
palette {
+ 0x00 0x00 0x00
+ 0x10 0x00 0x00
+ 0x20 0x00 0x00
+ 0x30 0x00 0x00
+ 0x40 0x00 0x00
+ 0x50 0x00 0x00
+ 0x60 0x00 0x00
+ 0x70 0x00 0x00
+
0x80 0x00 0x00
0x90 0x00 0x00
0xA0 0x00 0x00
0xB0 0x00 0x00
- 0x00 0xC0 0x00
- 0x00 0xD0 0xD0
- 0x00 0x00 0xE0
- 0xF0 0xF0 0xF0
+ 0xC0 0x00 0x00
+ 0xD0 0x00 0x00
+ 0xE0 0x00 0x00
+ 0xF0 0x00 0x00
+
+ 0x00 0x00 0x00
+ 0x00 0x00 0x11
+ 0x00 0x00 0x22
+ 0x00 0x00 0x33
+ 0x00 0x00 0x44
+ 0x00 0x00 0x55
+ 0x00 0x00 0x66
+ 0x00 0x00 0x77
+
+ 0x00 0x00 0x88
+ 0x00 0x00 0x99
+ 0x00 0x00 0xAA
+ 0x00 0x00 0xBB
+ 0x00 0x00 0xCC
+ 0x00 0x00 0xDD
+ 0x00 0x00 0xEE
+ 0x00 0x00 0xFF
}
}
graphicControl animationDisposalNone 100ms
frame {
- frameLeftTopWidthHeight 0 0 4 1
+ frameLeftTopWidthHeight 0 0 4 2
}
-lzw 7 0x00 0x01 0x02 0x03
+lzw 7 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
-graphicControl animationDisposalNone 200ms transparentIndex=5
+graphicControl animationDisposalNone 200ms transparentIndex=0x1A
frame {
- frameLeftTopWidthHeight 0 0 3 1
+ frameLeftTopWidthHeight 1 1 3 1
}
-lzw 7 0x04 0x05 0x06
+lzw 7 0x1F 0x1A 0x15
trailer