2013-07-05 4 views
0

Есть ли какая-либо библиотека, которая может взять существующий анимированный GIF-файл и установить/отключить счет цикла и флаг цикла? У меня есть пара GIF-файлов, созданных FFMPEG, и кажется невозможным установить флаги count/loop count в FFMPEG. Так что нужна какая-то пост-обработка изображений GIF.Изменить заголовок файла GIF89A

ответ

1

решение (в Скале) является то, что просто:

val raf = new RandomAccessFile(src, "rw") 
    // skip GIF header, 6 bytes. Don't care of it much. 
    raf.skipBytes(6) 
    // don't need image dimension 
    raf.skipBytes(4) 
    val flags = raf.readUnsignedByte() 
    val headerSize = 3 * (1 << ((flags & 7) + 1)) // 00000111 - size of color table 
    val headerExists = 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) 
    } 
    val signature = 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() 
+0

Вы можете преобразовать его в Java? благодаря – rgomesf

Смежные вопросы