"image/color"
"image/color/palette"
"image/draw"
+ "internal/byteorder"
"io"
)
return -1
}
-// Little-endian.
-func writeUint16(b []uint8, u uint16) {
- b[0] = uint8(u)
- b[1] = uint8(u >> 8)
-}
-
// writer is a buffered writer.
type writer interface {
Flush() error
}
// Logical screen width and height.
- writeUint16(e.buf[0:2], uint16(e.g.Config.Width))
- writeUint16(e.buf[2:4], uint16(e.g.Config.Height))
+ byteorder.LePutUint16(e.buf[0:2], uint16(e.g.Config.Width))
+ byteorder.LePutUint16(e.buf[2:4], uint16(e.g.Config.Height))
e.write(e.buf[:4])
if p, ok := e.g.Config.ColorModel.(color.Palette); ok && len(p) > 0 {
}
e.buf[0] = 0x03 // Block Size.
e.buf[1] = 0x01 // Sub-block Index.
- writeUint16(e.buf[2:4], uint16(e.g.LoopCount))
+ byteorder.LePutUint16(e.buf[2:4], uint16(e.g.LoopCount))
e.buf[4] = 0x00 // Block Terminator.
e.write(e.buf[:5])
}
} else {
e.buf[3] = 0x00 | disposal<<2
}
- writeUint16(e.buf[4:6], uint16(delay)) // Delay Time (1/100ths of a second)
+ byteorder.LePutUint16(e.buf[4:6], uint16(delay)) // Delay Time (1/100ths of a second)
// Transparent color index.
if transparentIndex != -1 {
e.write(e.buf[:8])
}
e.buf[0] = sImageDescriptor
- writeUint16(e.buf[1:3], uint16(b.Min.X))
- writeUint16(e.buf[3:5], uint16(b.Min.Y))
- writeUint16(e.buf[5:7], uint16(b.Dx()))
- writeUint16(e.buf[7:9], uint16(b.Dy()))
+ byteorder.LePutUint16(e.buf[1:3], uint16(b.Min.X))
+ byteorder.LePutUint16(e.buf[3:5], uint16(b.Min.Y))
+ byteorder.LePutUint16(e.buf[5:7], uint16(b.Dx()))
+ byteorder.LePutUint16(e.buf[7:9], uint16(b.Dy()))
e.write(e.buf[:9])
// To determine whether or not this frame's palette is the same as the