private void readGraphicControlExt ( ) { // Block size. read ( ) ; // Packed fields. int packed = read ( ) ; // Disposal method. header . currentFrame . dispose = ( packed & 0x1c ) >> 2 ; if ( header . currentFrame . dispose == 0 ) { // Elect to keep old image if discretionary. header . currentFrame . dispose = 1 ; } header . currentFrame . transparency = ( packed & 1 ) != 0 ; // Delay in milliseconds. int delayInHundredthsOfASecond = readShort ( ) ; // TODO: consider allowing -1 to indicate show forever. if ( delayInHundredthsOfASecond < MIN_FRAME_DELAY ) { delayInHundredthsOfASecond = DEFAULT_FRAME_DELAY ; } header . currentFrame . delay = delayInHundredthsOfASecond * 10 ; // Transparent color index header . currentFrame . transIndex = read ( ) ; // Block terminator read ( ) ; }
Reads Graphics Control Extension values .