You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice to be able to be able to stop the player after n plays (or frames?).
Or maybe have the program read the number of loops from the file data if it exists.
(Random Scala code (should give an idea) reading loop count bytes. Found here):
valraf=newRandomAccessFile(src, "rw")
// skip GIF header, 6 bytes. Don't care of it much.
raf.skipBytes(6)
// don't need image dimension
raf.skipBytes(4)
valflags= raf.readUnsignedByte()
valheaderSize=3* (1<< ((flags & 7) +1)) // 00000111 - size of color tablevalheaderExists= flags & 128// 10000000 - is there a color table at all// skip background color and pixel ratio
raf.skipBytes(2)
if (headerExists !=0) {
raf.skipBytes(headerSize)
}
valsignature= raf.readUnsignedShort()
require(signature ==0x21ff)
raf.skipBytes(13) // NETSCAPE 2.0
raf.skipBytes(1) // GIF animation flag has to be 1
ctx.loopCount.foreach {
v =>
raf.writeByte(v & 0xff)
raf.writeByte((v >>8) & 0xff)
}
raf.close()
Turns out it's pretty hard finding information on parsing GIF data 🤔
I might have a go (lol) at this, at some point.
The text was updated successfully, but these errors were encountered:
Hi! Very cool project!
It would be nice to be able to be able to stop the player after
n
plays (or frames?).Or maybe have the program read the number of loops from the file data if it exists.
(Random Scala code (should give an idea) reading loop count bytes. Found here):
Turns out it's pretty hard finding information on parsing GIF data 🤔
I might have a go (lol) at this, at some point.
The text was updated successfully, but these errors were encountered: