SubwayTooter-Android-App/apng/src/test/java/jp/juggler/apng/TestApng.kt

3232 lines
67 KiB
Kotlin

@file:Suppress("LocalVariableName")
package jp.juggler.apng
import java.io.BufferedInputStream
import java.io.File
import java.io.FileInputStream
import kotlin.test.Test
import kotlin.test.assertEquals
@Suppress("LargeClass")
class TestApng {
companion object {
private val imageData = intArrayOf(
0xffff,
0xffff,
0x0,
0xf7bd,
0xffff,
0x0,
0xef7b,
0xffff,
0x0,
0xe739,
0xffff,
0x0,
0xdef7,
0xffff,
0x0,
0xd6b5,
0xffff,
0x0,
0xce73,
0xffff,
0x0,
0xc631,
0xffff,
0x0,
0xbdef,
0xffff,
0x0,
0xb5ad,
0xffff,
0x0,
0xad6b,
0xffff,
0x0,
0xa529,
0xffff,
0x0,
0x9ce7,
0xffff,
0x0,
0x94a5,
0xffff,
0x0,
0x8c63,
0xffff,
0x0,
0x8421,
0xffff,
0x0,
0x7bde,
0xffff,
0x0,
0x739c,
0xffff,
0x0,
0x6b5a,
0xffff,
0x0,
0x6318,
0xffff,
0x0,
0x5ad6,
0xffff,
0x0,
0x5294,
0xffff,
0x0,
0x4a52,
0xffff,
0x0,
0x4210,
0xffff,
0x0,
0x39ce,
0xffff,
0x0,
0x318c,
0xffff,
0x0,
0x294a,
0xffff,
0x0,
0x2108,
0xffff,
0x0,
0x18c6,
0xffff,
0x0,
0x1084,
0xffff,
0x0,
0x842,
0xffff,
0x0,
0x0,
0xffff,
0x0,
0xffff,
0xf7bd,
0x0,
0xf7bd,
0xf7bd,
0x0,
0xef7b,
0xf7bd,
0x0,
0xe739,
0xf7bd,
0x0,
0xdef7,
0xf7bd,
0x0,
0xd6b5,
0xf7bd,
0x0,
0xce73,
0xf7bd,
0x0,
0xc631,
0xf7bd,
0x0,
0xbdef,
0xf7bd,
0x0,
0xb5ad,
0xf7bd,
0x0,
0xad6b,
0xf7bd,
0x0,
0xa529,
0xf7bd,
0x0,
0x9ce7,
0xf7bd,
0x0,
0x94a5,
0xf7bd,
0x0,
0x8c63,
0xf7bd,
0x0,
0x8421,
0xf7bd,
0x0,
0x7bde,
0xf7bd,
0x0,
0x739c,
0xf7bd,
0x0,
0x6b5a,
0xf7bd,
0x0,
0x6318,
0xf7bd,
0x0,
0x5ad6,
0xf7bd,
0x0,
0x5294,
0xf7bd,
0x0,
0x4a52,
0xf7bd,
0x0,
0x4210,
0xf7bd,
0x0,
0x39ce,
0xf7bd,
0x0,
0x318c,
0xf7bd,
0x0,
0x294a,
0xf7bd,
0x0,
0x2108,
0xf7bd,
0x0,
0x18c6,
0xf7bd,
0x0,
0x1084,
0xf7bd,
0x0,
0x842,
0xf7bd,
0x0,
0x0,
0xf7bd,
0x842,
0xffff,
0xef7b,
0x0,
0xf7bd,
0xef7b,
0x0,
0xef7b,
0xef7b,
0x0,
0xe739,
0xef7b,
0x0,
0xdef7,
0xef7b,
0x0,
0xd6b5,
0xef7b,
0x0,
0xce73,
0xef7b,
0x0,
0xc631,
0xef7b,
0x0,
0xbdef,
0xef7b,
0x0,
0xb5ad,
0xef7b,
0x0,
0xad6b,
0xef7b,
0x0,
0xa529,
0xef7b,
0x0,
0x9ce7,
0xef7b,
0x0,
0x94a5,
0xef7b,
0x0,
0x8c63,
0xef7b,
0x0,
0x8421,
0xef7b,
0x0,
0x7bde,
0xef7b,
0x0,
0x739c,
0xef7b,
0x0,
0x6b5a,
0xef7b,
0x0,
0x6318,
0xef7b,
0x0,
0x5ad6,
0xef7b,
0x0,
0x5294,
0xef7b,
0x0,
0x4a52,
0xef7b,
0x0,
0x4210,
0xef7b,
0x0,
0x39ce,
0xef7b,
0x0,
0x318c,
0xef7b,
0x0,
0x294a,
0xef7b,
0x0,
0x2108,
0xef7b,
0x0,
0x18c6,
0xef7b,
0x0,
0x1084,
0xef7b,
0x0,
0x842,
0xef7b,
0x842,
0x0,
0xef7b,
0x1084,
0xffff,
0xe739,
0x0,
0xf7bd,
0xe739,
0x0,
0xef7b,
0xe739,
0x0,
0xe739,
0xe739,
0x0,
0xdef7,
0xe739,
0x0,
0xd6b5,
0xe739,
0x0,
0xce73,
0xe739,
0x0,
0xc631,
0xe739,
0x0,
0xbdef,
0xe739,
0x0,
0xb5ad,
0xe739,
0x0,
0xad6b,
0xe739,
0x0,
0xa529,
0xe739,
0x0,
0x9ce7,
0xe739,
0x0,
0x94a5,
0xe739,
0x0,
0x8c63,
0xe739,
0x0,
0x8421,
0xe739,
0x0,
0x7bde,
0xe739,
0x0,
0x739c,
0xe739,
0x0,
0x6b5a,
0xe739,
0x0,
0x6318,
0xe739,
0x0,
0x5ad6,
0xe739,
0x0,
0x5294,
0xe739,
0x0,
0x4a52,
0xe739,
0x0,
0x4210,
0xe739,
0x0,
0x39ce,
0xe739,
0x0,
0x318c,
0xe739,
0x0,
0x294a,
0xe739,
0x0,
0x2108,
0xe739,
0x0,
0x18c6,
0xe739,
0x0,
0x1084,
0xe739,
0x842,
0x842,
0xe739,
0x1084,
0x0,
0xe739,
0x18c6,
0xffff,
0xdef7,
0x0,
0xf7bd,
0xdef7,
0x0,
0xef7b,
0xdef7,
0x0,
0xe739,
0xdef7,
0x0,
0xdef7,
0xdef7,
0x0,
0xd6b5,
0xdef7,
0x0,
0xce73,
0xdef7,
0x0,
0xc631,
0xdef7,
0x0,
0xbdef,
0xdef7,
0x0,
0xb5ad,
0xdef7,
0x0,
0xad6b,
0xdef7,
0x0,
0xa529,
0xdef7,
0x0,
0x9ce7,
0xdef7,
0x0,
0x94a5,
0xdef7,
0x0,
0x8c63,
0xdef7,
0x0,
0x8421,
0xdef7,
0x0,
0x7bde,
0xdef7,
0x0,
0x739c,
0xdef7,
0x0,
0x6b5a,
0xdef7,
0x0,
0x6318,
0xdef7,
0x0,
0x5ad6,
0xdef7,
0x0,
0x5294,
0xdef7,
0x0,
0x4a52,
0xdef7,
0x0,
0x4210,
0xdef7,
0x0,
0x39ce,
0xdef7,
0x0,
0x318c,
0xdef7,
0x0,
0x294a,
0xdef7,
0x0,
0x2108,
0xdef7,
0x0,
0x18c6,
0xdef7,
0x842,
0x1084,
0xdef7,
0x1084,
0x842,
0xdef7,
0x18c6,
0x0,
0xdef7,
0x2108,
0xffff,
0xd6b5,
0x0,
0xf7bd,
0xd6b5,
0x0,
0xef7b,
0xd6b5,
0x0,
0xe739,
0xd6b5,
0x0,
0xdef7,
0xd6b5,
0x0,
0xd6b5,
0xd6b5,
0x0,
0xce73,
0xd6b5,
0x0,
0xc631,
0xd6b5,
0x0,
0xbdef,
0xd6b5,
0x0,
0xb5ad,
0xd6b5,
0x0,
0xad6b,
0xd6b5,
0x0,
0xa529,
0xd6b5,
0x0,
0x9ce7,
0xd6b5,
0x0,
0x94a5,
0xd6b5,
0x0,
0x8c63,
0xd6b5,
0x0,
0x8421,
0xd6b5,
0x0,
0x7bde,
0xd6b5,
0x0,
0x739c,
0xd6b5,
0x0,
0x6b5a,
0xd6b5,
0x0,
0x6318,
0xd6b5,
0x0,
0x5ad6,
0xd6b5,
0x0,
0x5294,
0xd6b5,
0x0,
0x4a52,
0xd6b5,
0x0,
0x4210,
0xd6b5,
0x0,
0x39ce,
0xd6b5,
0x0,
0x318c,
0xd6b5,
0x0,
0x294a,
0xd6b5,
0x0,
0x2108,
0xd6b5,
0x842,
0x18c6,
0xd6b5,
0x1084,
0x1084,
0xd6b5,
0x18c6,
0x842,
0xd6b5,
0x2108,
0x0,
0xd6b5,
0x294a,
0xffff,
0xce73,
0x0,
0xf7bd,
0xce73,
0x0,
0xef7b,
0xce73,
0x0,
0xe739,
0xce73,
0x0,
0xdef7,
0xce73,
0x0,
0xd6b5,
0xce73,
0x0,
0xce73,
0xce73,
0x0,
0xc631,
0xce73,
0x0,
0xbdef,
0xce73,
0x0,
0xb5ad,
0xce73,
0x0,
0xad6b,
0xce73,
0x0,
0xa529,
0xce73,
0x0,
0x9ce7,
0xce73,
0x0,
0x94a5,
0xce73,
0x0,
0x8c63,
0xce73,
0x0,
0x8421,
0xce73,
0x0,
0x7bde,
0xce73,
0x0,
0x739c,
0xce73,
0x0,
0x6b5a,
0xce73,
0x0,
0x6318,
0xce73,
0x0,
0x5ad6,
0xce73,
0x0,
0x5294,
0xce73,
0x0,
0x4a52,
0xce73,
0x0,
0x4210,
0xce73,
0x0,
0x39ce,
0xce73,
0x0,
0x318c,
0xce73,
0x0,
0x294a,
0xce73,
0x842,
0x2108,
0xce73,
0x1084,
0x18c6,
0xce73,
0x18c6,
0x1084,
0xce73,
0x2108,
0x842,
0xce73,
0x294a,
0x0,
0xce73,
0x318c,
0xffff,
0xc631,
0x0,
0xf7bd,
0xc631,
0x0,
0xef7b,
0xc631,
0x0,
0xe739,
0xc631,
0x0,
0xdef7,
0xc631,
0x0,
0xd6b5,
0xc631,
0x0,
0xce73,
0xc631,
0x0,
0xc631,
0xc631,
0x0,
0xbdef,
0xc631,
0x0,
0xb5ad,
0xc631,
0x0,
0xad6b,
0xc631,
0x0,
0xa529,
0xc631,
0x0,
0x9ce7,
0xc631,
0x0,
0x94a5,
0xc631,
0x0,
0x8c63,
0xc631,
0x0,
0x8421,
0xc631,
0x0,
0x7bde,
0xc631,
0x0,
0x739c,
0xc631,
0x0,
0x6b5a,
0xc631,
0x0,
0x6318,
0xc631,
0x0,
0x5ad6,
0xc631,
0x0,
0x5294,
0xc631,
0x0,
0x4a52,
0xc631,
0x0,
0x4210,
0xc631,
0x0,
0x39ce,
0xc631,
0x0,
0x318c,
0xc631,
0x842,
0x294a,
0xc631,
0x1084,
0x2108,
0xc631,
0x18c6,
0x18c6,
0xc631,
0x2108,
0x1084,
0xc631,
0x294a,
0x842,
0xc631,
0x318c,
0x0,
0xc631,
0x39ce,
0xffff,
0xbdef,
0x0,
0xf7bd,
0xbdef,
0x0,
0xef7b,
0xbdef,
0x0,
0xe739,
0xbdef,
0x0,
0xdef7,
0xbdef,
0x0,
0xd6b5,
0xbdef,
0x0,
0xce73,
0xbdef,
0x0,
0xc631,
0xbdef,
0x0,
0xbdef,
0xbdef,
0x0,
0xb5ad,
0xbdef,
0x0,
0xad6b,
0xbdef,
0x0,
0xa529,
0xbdef,
0x0,
0x9ce7,
0xbdef,
0x0,
0x94a5,
0xbdef,
0x0,
0x8c63,
0xbdef,
0x0,
0x8421,
0xbdef,
0x0,
0x7bde,
0xbdef,
0x0,
0x739c,
0xbdef,
0x0,
0x6b5a,
0xbdef,
0x0,
0x6318,
0xbdef,
0x0,
0x5ad6,
0xbdef,
0x0,
0x5294,
0xbdef,
0x0,
0x4a52,
0xbdef,
0x0,
0x4210,
0xbdef,
0x0,
0x39ce,
0xbdef,
0x842,
0x318c,
0xbdef,
0x1084,
0x294a,
0xbdef,
0x18c6,
0x2108,
0xbdef,
0x2108,
0x18c6,
0xbdef,
0x294a,
0x1084,
0xbdef,
0x318c,
0x842,
0xbdef,
0x39ce,
0x0,
0xbdef,
0x4210,
0xffff,
0xb5ad,
0x0,
0xf7bd,
0xb5ad,
0x0,
0xef7b,
0xb5ad,
0x0,
0xe739,
0xb5ad,
0x0,
0xdef7,
0xb5ad,
0x0,
0xd6b5,
0xb5ad,
0x0,
0xce73,
0xb5ad,
0x0,
0xc631,
0xb5ad,
0x0,
0xbdef,
0xb5ad,
0x0,
0xb5ad,
0xb5ad,
0x0,
0xad6b,
0xb5ad,
0x0,
0xa529,
0xb5ad,
0x0,
0x9ce7,
0xb5ad,
0x0,
0x94a5,
0xb5ad,
0x0,
0x8c63,
0xb5ad,
0x0,
0x8421,
0xb5ad,
0x0,
0x7bde,
0xb5ad,
0x0,
0x739c,
0xb5ad,
0x0,
0x6b5a,
0xb5ad,
0x0,
0x6318,
0xb5ad,
0x0,
0x5ad6,
0xb5ad,
0x0,
0x5294,
0xb5ad,
0x0,
0x4a52,
0xb5ad,
0x0,
0x4210,
0xb5ad,
0x842,
0x39ce,
0xb5ad,
0x1084,
0x318c,
0xb5ad,
0x18c6,
0x294a,
0xb5ad,
0x2108,
0x2108,
0xb5ad,
0x294a,
0x18c6,
0xb5ad,
0x318c,
0x1084,
0xb5ad,
0x39ce,
0x842,
0xb5ad,
0x4210,
0x0,
0xb5ad,
0x4a52,
0xffff,
0xad6b,
0x0,
0xf7bd,
0xad6b,
0x0,
0xef7b,
0xad6b,
0x0,
0xe739,
0xad6b,
0x0,
0xdef7,
0xad6b,
0x0,
0xd6b5,
0xad6b,
0x0,
0xce73,
0xad6b,
0x0,
0xc631,
0xad6b,
0x0,
0xbdef,
0xad6b,
0x0,
0xb5ad,
0xad6b,
0x0,
0xad6b,
0xad6b,
0x0,
0xa529,
0xad6b,
0x0,
0x9ce7,
0xad6b,
0x0,
0x94a5,
0xad6b,
0x0,
0x8c63,
0xad6b,
0x0,
0x8421,
0xad6b,
0x0,
0x7bde,
0xad6b,
0x0,
0x739c,
0xad6b,
0x0,
0x6b5a,
0xad6b,
0x0,
0x6318,
0xad6b,
0x0,
0x5ad6,
0xad6b,
0x0,
0x5294,
0xad6b,
0x0,
0x4a52,
0xad6b,
0x842,
0x4210,
0xad6b,
0x1084,
0x39ce,
0xad6b,
0x18c6,
0x318c,
0xad6b,
0x2108,
0x294a,
0xad6b,
0x294a,
0x2108,
0xad6b,
0x318c,
0x18c6,
0xad6b,
0x39ce,
0x1084,
0xad6b,
0x4210,
0x842,
0xad6b,
0x4a52,
0x0,
0xad6b,
0x5294,
0xffff,
0xa529,
0x0,
0xf7bd,
0xa529,
0x0,
0xef7b,
0xa529,
0x0,
0xe739,
0xa529,
0x0,
0xdef7,
0xa529,
0x0,
0xd6b5,
0xa529,
0x0,
0xce73,
0xa529,
0x0,
0xc631,
0xa529,
0x0,
0xbdef,
0xa529,
0x0,
0xb5ad,
0xa529,
0x0,
0xad6b,
0xa529,
0x0,
0xa529,
0xa529,
0x0,
0x9ce7,
0xa529,
0x0,
0x94a5,
0xa529,
0x0,
0x8c63,
0xa529,
0x0,
0x8421,
0xa529,
0x0,
0x7bde,
0xa529,
0x0,
0x739c,
0xa529,
0x0,
0x6b5a,
0xa529,
0x0,
0x6318,
0xa529,
0x0,
0x5ad6,
0xa529,
0x0,
0x5294,
0xa529,
0x842,
0x4a52,
0xa529,
0x1084,
0x4210,
0xa529,
0x18c6,
0x39ce,
0xa529,
0x2108,
0x318c,
0xa529,
0x294a,
0x294a,
0xa529,
0x318c,
0x2108,
0xa529,
0x39ce,
0x18c6,
0xa529,
0x4210,
0x1084,
0xa529,
0x4a52,
0x842,
0xa529,
0x5294,
0x0,
0xa529,
0x5ad6,
0xffff,
0x9ce7,
0x0,
0xf7bd,
0x9ce7,
0x0,
0xef7b,
0x9ce7,
0x0,
0xe739,
0x9ce7,
0x0,
0xdef7,
0x9ce7,
0x0,
0xd6b5,
0x9ce7,
0x0,
0xce73,
0x9ce7,
0x0,
0xc631,
0x9ce7,
0x0,
0xbdef,
0x9ce7,
0x0,
0xb5ad,
0x9ce7,
0x0,
0xad6b,
0x9ce7,
0x0,
0xa529,
0x9ce7,
0x0,
0x9ce7,
0x9ce7,
0x0,
0x94a5,
0x9ce7,
0x0,
0x8c63,
0x9ce7,
0x0,
0x8421,
0x9ce7,
0x0,
0x7bde,
0x9ce7,
0x0,
0x739c,
0x9ce7,
0x0,
0x6b5a,
0x9ce7,
0x0,
0x6318,
0x9ce7,
0x0,
0x5ad6,
0x9ce7,
0x842,
0x5294,
0x9ce7,
0x1084,
0x4a52,
0x9ce7,
0x18c6,
0x4210,
0x9ce7,
0x2108,
0x39ce,
0x9ce7,
0x294a,
0x318c,
0x9ce7,
0x318c,
0x294a,
0x9ce7,
0x39ce,
0x2108,
0x9ce7,
0x4210,
0x18c6,
0x9ce7,
0x4a52,
0x1084,
0x9ce7,
0x5294,
0x842,
0x9ce7,
0x5ad6,
0x0,
0x9ce7,
0x6318,
0xffff,
0x94a5,
0x0,
0xf7bd,
0x94a5,
0x0,
0xef7b,
0x94a5,
0x0,
0xe739,
0x94a5,
0x0,
0xdef7,
0x94a5,
0x0,
0xd6b5,
0x94a5,
0x0,
0xce73,
0x94a5,
0x0,
0xc631,
0x94a5,
0x0,
0xbdef,
0x94a5,
0x0,
0xb5ad,
0x94a5,
0x0,
0xad6b,
0x94a5,
0x0,
0xa529,
0x94a5,
0x0,
0x9ce7,
0x94a5,
0x0,
0x94a5,
0x94a5,
0x0,
0x8c63,
0x94a5,
0x0,
0x8421,
0x94a5,
0x0,
0x7bde,
0x94a5,
0x0,
0x739c,
0x94a5,
0x0,
0x6b5a,
0x94a5,
0x0,
0x6318,
0x94a5,
0x842,
0x5ad6,
0x94a5,
0x1084,
0x5294,
0x94a5,
0x18c6,
0x4a52,
0x94a5,
0x2108,
0x4210,
0x94a5,
0x294a,
0x39ce,
0x94a5,
0x318c,
0x318c,
0x94a5,
0x39ce,
0x294a,
0x94a5,
0x4210,
0x2108,
0x94a5,
0x4a52,
0x18c6,
0x94a5,
0x5294,
0x1084,
0x94a5,
0x5ad6,
0x842,
0x94a5,
0x6318,
0x0,
0x94a5,
0x6b5a,
0xffff,
0x8c63,
0x0,
0xf7bd,
0x8c63,
0x0,
0xef7b,
0x8c63,
0x0,
0xe739,
0x8c63,
0x0,
0xdef7,
0x8c63,
0x0,
0xd6b5,
0x8c63,
0x0,
0xce73,
0x8c63,
0x0,
0xc631,
0x8c63,
0x0,
0xbdef,
0x8c63,
0x0,
0xb5ad,
0x8c63,
0x0,
0xad6b,
0x8c63,
0x0,
0xa529,
0x8c63,
0x0,
0x9ce7,
0x8c63,
0x0,
0x94a5,
0x8c63,
0x0,
0x8c63,
0x8c63,
0x0,
0x8421,
0x8c63,
0x0,
0x7bde,
0x8c63,
0x0,
0x739c,
0x8c63,
0x0,
0x6b5a,
0x8c63,
0x842,
0x6318,
0x8c63,
0x1084,
0x5ad6,
0x8c63,
0x18c6,
0x5294,
0x8c63,
0x2108,
0x4a52,
0x8c63,
0x294a,
0x4210,
0x8c63,
0x318c,
0x39ce,
0x8c63,
0x39ce,
0x318c,
0x8c63,
0x4210,
0x294a,
0x8c63,
0x4a52,
0x2108,
0x8c63,
0x5294,
0x18c6,
0x8c63,
0x5ad6,
0x1084,
0x8c63,
0x6318,
0x842,
0x8c63,
0x6b5a,
0x0,
0x8c63,
0x739c,
0xffff,
0x8421,
0x0,
0xf7bd,
0x8421,
0x0,
0xef7b,
0x8421,
0x0,
0xe739,
0x8421,
0x0,
0xdef7,
0x8421,
0x0,
0xd6b5,
0x8421,
0x0,
0xce73,
0x8421,
0x0,
0xc631,
0x8421,
0x0,
0xbdef,
0x8421,
0x0,
0xb5ad,
0x8421,
0x0,
0xad6b,
0x8421,
0x0,
0xa529,
0x8421,
0x0,
0x9ce7,
0x8421,
0x0,
0x94a5,
0x8421,
0x0,
0x8c63,
0x8421,
0x0,
0x8421,
0x8421,
0x0,
0x7bde,
0x8421,
0x0,
0x739c,
0x8421,
0x842,
0x6b5a,
0x8421,
0x1084,
0x6318,
0x8421,
0x18c6,
0x5ad6,
0x8421,
0x2108,
0x5294,
0x8421,
0x294a,
0x4a52,
0x8421,
0x318c,
0x4210,
0x8421,
0x39ce,
0x39ce,
0x8421,
0x4210,
0x318c,
0x8421,
0x4a52,
0x294a,
0x8421,
0x5294,
0x2108,
0x8421,
0x5ad6,
0x18c6,
0x8421,
0x6318,
0x1084,
0x8421,
0x6b5a,
0x842,
0x8421,
0x739c,
0x0,
0x8421,
0x7bde,
0xffff,
0x7bde,
0x0,
0xf7bd,
0x7bde,
0x0,
0xef7b,
0x7bde,
0x0,
0xe739,
0x7bde,
0x0,
0xdef7,
0x7bde,
0x0,
0xd6b5,
0x7bde,
0x0,
0xce73,
0x7bde,
0x0,
0xc631,
0x7bde,
0x0,
0xbdef,
0x7bde,
0x0,
0xb5ad,
0x7bde,
0x0,
0xad6b,
0x7bde,
0x0,
0xa529,
0x7bde,
0x0,
0x9ce7,
0x7bde,
0x0,
0x94a5,
0x7bde,
0x0,
0x8c63,
0x7bde,
0x0,
0x8421,
0x7bde,
0x0,
0x7bde,
0x7bde,
0x842,
0x739c,
0x7bde,
0x1084,
0x6b5a,
0x7bde,
0x18c6,
0x6318,
0x7bde,
0x2108,
0x5ad6,
0x7bde,
0x294a,
0x5294,
0x7bde,
0x318c,
0x4a52,
0x7bde,
0x39ce,
0x4210,
0x7bde,
0x4210,
0x39ce,
0x7bde,
0x4a52,
0x318c,
0x7bde,
0x5294,
0x294a,
0x7bde,
0x5ad6,
0x2108,
0x7bde,
0x6318,
0x18c6,
0x7bde,
0x6b5a,
0x1084,
0x7bde,
0x739c,
0x842,
0x7bde,
0x7bde,
0x0,
0x7bde,
0x8421,
0xffff,
0x739c,
0x0,
0xf7bd,
0x739c,
0x0,
0xef7b,
0x739c,
0x0,
0xe739,
0x739c,
0x0,
0xdef7,
0x739c,
0x0,
0xd6b5,
0x739c,
0x0,
0xce73,
0x739c,
0x0,
0xc631,
0x739c,
0x0,
0xbdef,
0x739c,
0x0,
0xb5ad,
0x739c,
0x0,
0xad6b,
0x739c,
0x0,
0xa529,
0x739c,
0x0,
0x9ce7,
0x739c,
0x0,
0x94a5,
0x739c,
0x0,
0x8c63,
0x739c,
0x0,
0x8421,
0x739c,
0x842,
0x7bde,
0x739c,
0x1084,
0x739c,
0x739c,
0x18c6,
0x6b5a,
0x739c,
0x2108,
0x6318,
0x739c,
0x294a,
0x5ad6,
0x739c,
0x318c,
0x5294,
0x739c,
0x39ce,
0x4a52,
0x739c,
0x4210,
0x4210,
0x739c,
0x4a52,
0x39ce,
0x739c,
0x5294,
0x318c,
0x739c,
0x5ad6,
0x294a,
0x739c,
0x6318,
0x2108,
0x739c,
0x6b5a,
0x18c6,
0x739c,
0x739c,
0x1084,
0x739c,
0x7bde,
0x842,
0x739c,
0x8421,
0x0,
0x739c,
0x8c63,
0xffff,
0x6b5a,
0x0,
0xf7bd,
0x6b5a,
0x0,
0xef7b,
0x6b5a,
0x0,
0xe739,
0x6b5a,
0x0,
0xdef7,
0x6b5a,
0x0,
0xd6b5,
0x6b5a,
0x0,
0xce73,
0x6b5a,
0x0,
0xc631,
0x6b5a,
0x0,
0xbdef,
0x6b5a,
0x0,
0xb5ad,
0x6b5a,
0x0,
0xad6b,
0x6b5a,
0x0,
0xa529,
0x6b5a,
0x0,
0x9ce7,
0x6b5a,
0x0,
0x94a5,
0x6b5a,
0x0,
0x8c63,
0x6b5a,
0x842,
0x8421,
0x6b5a,
0x1084,
0x7bde,
0x6b5a,
0x18c6,
0x739c,
0x6b5a,
0x2108,
0x6b5a,
0x6b5a,
0x294a,
0x6318,
0x6b5a,
0x318c,
0x5ad6,
0x6b5a,
0x39ce,
0x5294,
0x6b5a,
0x4210,
0x4a52,
0x6b5a,
0x4a52,
0x4210,
0x6b5a,
0x5294,
0x39ce,
0x6b5a,
0x5ad6,
0x318c,
0x6b5a,
0x6318,
0x294a,
0x6b5a,
0x6b5a,
0x2108,
0x6b5a,
0x739c,
0x18c6,
0x6b5a,
0x7bde,
0x1084,
0x6b5a,
0x8421,
0x842,
0x6b5a,
0x8c63,
0x0,
0x6b5a,
0x94a5,
0xffff,
0x6318,
0x0,
0xf7bd,
0x6318,
0x0,
0xef7b,
0x6318,
0x0,
0xe739,
0x6318,
0x0,
0xdef7,
0x6318,
0x0,
0xd6b5,
0x6318,
0x0,
0xce73,
0x6318,
0x0,
0xc631,
0x6318,
0x0,
0xbdef,
0x6318,
0x0,
0xb5ad,
0x6318,
0x0,
0xad6b,
0x6318,
0x0,
0xa529,
0x6318,
0x0,
0x9ce7,
0x6318,
0x0,
0x94a5,
0x6318,
0x842,
0x8c63,
0x6318,
0x1084,
0x8421,
0x6318,
0x18c6,
0x7bde,
0x6318,
0x2108,
0x739c,
0x6318,
0x294a,
0x6b5a,
0x6318,
0x318c,
0x6318,
0x6318,
0x39ce,
0x5ad6,
0x6318,
0x4210,
0x5294,
0x6318,
0x4a52,
0x4a52,
0x6318,
0x5294,
0x4210,
0x6318,
0x5ad6,
0x39ce,
0x6318,
0x6318,
0x318c,
0x6318,
0x6b5a,
0x294a,
0x6318,
0x739c,
0x2108,
0x6318,
0x7bde,
0x18c6,
0x6318,
0x8421,
0x1084,
0x6318,
0x8c63,
0x842,
0x6318,
0x94a5,
0x0,
0x6318,
0x9ce7,
0xffff,
0x5ad6,
0x0,
0xf7bd,
0x5ad6,
0x0,
0xef7b,
0x5ad6,
0x0,
0xe739,
0x5ad6,
0x0,
0xdef7,
0x5ad6,
0x0,
0xd6b5,
0x5ad6,
0x0,
0xce73,
0x5ad6,
0x0,
0xc631,
0x5ad6,
0x0,
0xbdef,
0x5ad6,
0x0,
0xb5ad,
0x5ad6,
0x0,
0xad6b,
0x5ad6,
0x0,
0xa529,
0x5ad6,
0x0,
0x9ce7,
0x5ad6,
0x842,
0x94a5,
0x5ad6,
0x1084,
0x8c63,
0x5ad6,
0x18c6,
0x8421,
0x5ad6,
0x2108,
0x7bde,
0x5ad6,
0x294a,
0x739c,
0x5ad6,
0x318c,
0x6b5a,
0x5ad6,
0x39ce,
0x6318,
0x5ad6,
0x4210,
0x5ad6,
0x5ad6,
0x4a52,
0x5294,
0x5ad6,
0x5294,
0x4a52,
0x5ad6,
0x5ad6,
0x4210,
0x5ad6,
0x6318,
0x39ce,
0x5ad6,
0x6b5a,
0x318c,
0x5ad6,
0x739c,
0x294a,
0x5ad6,
0x7bde,
0x2108,
0x5ad6,
0x8421,
0x18c6,
0x5ad6,
0x8c63,
0x1084,
0x5ad6,
0x94a5,
0x842,
0x5ad6,
0x9ce7,
0x0,
0x5ad6,
0xa529,
0xffff,
0x5294,
0x0,
0xf7bd,
0x5294,
0x0,
0xef7b,
0x5294,
0x0,
0xe739,
0x5294,
0x0,
0xdef7,
0x5294,
0x0,
0xd6b5,
0x5294,
0x0,
0xce73,
0x5294,
0x0,
0xc631,
0x5294,
0x0,
0xbdef,
0x5294,
0x0,
0xb5ad,
0x5294,
0x0,
0xad6b,
0x5294,
0x0,
0xa529,
0x5294,
0x842,
0x9ce7,
0x5294,
0x1084,
0x94a5,
0x5294,
0x18c6,
0x8c63,
0x5294,
0x2108,
0x8421,
0x5294,
0x294a,
0x7bde,
0x5294,
0x318c,
0x739c,
0x5294,
0x39ce,
0x6b5a,
0x5294,
0x4210,
0x6318,
0x5294,
0x4a52,
0x5ad6,
0x5294,
0x5294,
0x5294,
0x5294,
0x5ad6,
0x4a52,
0x5294,
0x6318,
0x4210,
0x5294,
0x6b5a,
0x39ce,
0x5294,
0x739c,
0x318c,
0x5294,
0x7bde,
0x294a,
0x5294,
0x8421,
0x2108,
0x5294,
0x8c63,
0x18c6,
0x5294,
0x94a5,
0x1084,
0x5294,
0x9ce7,
0x842,
0x5294,
0xa529,
0x0,
0x5294,
0xad6b,
0xffff,
0x4a52,
0x0,
0xf7bd,
0x4a52,
0x0,
0xef7b,
0x4a52,
0x0,
0xe739,
0x4a52,
0x0,
0xdef7,
0x4a52,
0x0,
0xd6b5,
0x4a52,
0x0,
0xce73,
0x4a52,
0x0,
0xc631,
0x4a52,
0x0,
0xbdef,
0x4a52,
0x0,
0xb5ad,
0x4a52,
0x0,
0xad6b,
0x4a52,
0x842,
0xa529,
0x4a52,
0x1084,
0x9ce7,
0x4a52,
0x18c6,
0x94a5,
0x4a52,
0x2108,
0x8c63,
0x4a52,
0x294a,
0x8421,
0x4a52,
0x318c,
0x7bde,
0x4a52,
0x39ce,
0x739c,
0x4a52,
0x4210,
0x6b5a,
0x4a52,
0x4a52,
0x6318,
0x4a52,
0x5294,
0x5ad6,
0x4a52,
0x5ad6,
0x5294,
0x4a52,
0x6318,
0x4a52,
0x4a52,
0x6b5a,
0x4210,
0x4a52,
0x739c,
0x39ce,
0x4a52,
0x7bde,
0x318c,
0x4a52,
0x8421,
0x294a,
0x4a52,
0x8c63,
0x2108,
0x4a52,
0x94a5,
0x18c6,
0x4a52,
0x9ce7,
0x1084,
0x4a52,
0xa529,
0x842,
0x4a52,
0xad6b,
0x0,
0x4a52,
0xb5ad,
0xffff,
0x4210,
0x0,
0xf7bd,
0x4210,
0x0,
0xef7b,
0x4210,
0x0,
0xe739,
0x4210,
0x0,
0xdef7,
0x4210,
0x0,
0xd6b5,
0x4210,
0x0,
0xce73,
0x4210,
0x0,
0xc631,
0x4210,
0x0,
0xbdef,
0x4210,
0x0,
0xb5ad,
0x4210,
0x842,
0xad6b,
0x4210,
0x1084,
0xa529,
0x4210,
0x18c6,
0x9ce7,
0x4210,
0x2108,
0x94a5,
0x4210,
0x294a,
0x8c63,
0x4210,
0x318c,
0x8421,
0x4210,
0x39ce,
0x7bde,
0x4210,
0x4210,
0x739c,
0x4210,
0x4a52,
0x6b5a,
0x4210,
0x5294,
0x6318,
0x4210,
0x5ad6,
0x5ad6,
0x4210,
0x6318,
0x5294,
0x4210,
0x6b5a,
0x4a52,
0x4210,
0x739c,
0x4210,
0x4210,
0x7bde,
0x39ce,
0x4210,
0x8421,
0x318c,
0x4210,
0x8c63,
0x294a,
0x4210,
0x94a5,
0x2108,
0x4210,
0x9ce7,
0x18c6,
0x4210,
0xa529,
0x1084,
0x4210,
0xad6b,
0x842,
0x4210,
0xb5ad,
0x0,
0x4210,
0xbdef,
0xffff,
0x39ce,
0x0,
0xf7bd,
0x39ce,
0x0,
0xef7b,
0x39ce,
0x0,
0xe739,
0x39ce,
0x0,
0xdef7,
0x39ce,
0x0,
0xd6b5,
0x39ce,
0x0,
0xce73,
0x39ce,
0x0,
0xc631,
0x39ce,
0x0,
0xbdef,
0x39ce,
0x842,
0xb5ad,
0x39ce,
0x1084,
0xad6b,
0x39ce,
0x18c6,
0xa529,
0x39ce,
0x2108,
0x9ce7,
0x39ce,
0x294a,
0x94a5,
0x39ce,
0x318c,
0x8c63,
0x39ce,
0x39ce,
0x8421,
0x39ce,
0x4210,
0x7bde,
0x39ce,
0x4a52,
0x739c,
0x39ce,
0x5294,
0x6b5a,
0x39ce,
0x5ad6,
0x6318,
0x39ce,
0x6318,
0x5ad6,
0x39ce,
0x6b5a,
0x5294,
0x39ce,
0x739c,
0x4a52,
0x39ce,
0x7bde,
0x4210,
0x39ce,
0x8421,
0x39ce,
0x39ce,
0x8c63,
0x318c,
0x39ce,
0x94a5,
0x294a,
0x39ce,
0x9ce7,
0x2108,
0x39ce,
0xa529,
0x18c6,
0x39ce,
0xad6b,
0x1084,
0x39ce,
0xb5ad,
0x842,
0x39ce,
0xbdef,
0x0,
0x39ce,
0xc631,
0xffff,
0x318c,
0x0,
0xf7bd,
0x318c,
0x0,
0xef7b,
0x318c,
0x0,
0xe739,
0x318c,
0x0,
0xdef7,
0x318c,
0x0,
0xd6b5,
0x318c,
0x0,
0xce73,
0x318c,
0x0,
0xc631,
0x318c,
0x842,
0xbdef,
0x318c,
0x1084,
0xb5ad,
0x318c,
0x18c6,
0xad6b,
0x318c,
0x2108,
0xa529,
0x318c,
0x294a,
0x9ce7,
0x318c,
0x318c,
0x94a5,
0x318c,
0x39ce,
0x8c63,
0x318c,
0x4210,
0x8421,
0x318c,
0x4a52,
0x7bde,
0x318c,
0x5294,
0x739c,
0x318c,
0x5ad6,
0x6b5a,
0x318c,
0x6318,
0x6318,
0x318c,
0x6b5a,
0x5ad6,
0x318c,
0x739c,
0x5294,
0x318c,
0x7bde,
0x4a52,
0x318c,
0x8421,
0x4210,
0x318c,
0x8c63,
0x39ce,
0x318c,
0x94a5,
0x318c,
0x318c,
0x9ce7,
0x294a,
0x318c,
0xa529,
0x2108,
0x318c,
0xad6b,
0x18c6,
0x318c,
0xb5ad,
0x1084,
0x318c,
0xbdef,
0x842,
0x318c,
0xc631,
0x0,
0x318c,
0xce73,
0xffff,
0x294a,
0x0,
0xf7bd,
0x294a,
0x0,
0xef7b,
0x294a,
0x0,
0xe739,
0x294a,
0x0,
0xdef7,
0x294a,
0x0,
0xd6b5,
0x294a,
0x0,
0xce73,
0x294a,
0x842,
0xc631,
0x294a,
0x1084,
0xbdef,
0x294a,
0x18c6,
0xb5ad,
0x294a,
0x2108,
0xad6b,
0x294a,
0x294a,
0xa529,
0x294a,
0x318c,
0x9ce7,
0x294a,
0x39ce,
0x94a5,
0x294a,
0x4210,
0x8c63,
0x294a,
0x4a52,
0x8421,
0x294a,
0x5294,
0x7bde,
0x294a,
0x5ad6,
0x739c,
0x294a,
0x6318,
0x6b5a,
0x294a,
0x6b5a,
0x6318,
0x294a,
0x739c,
0x5ad6,
0x294a,
0x7bde,
0x5294,
0x294a,
0x8421,
0x4a52,
0x294a,
0x8c63,
0x4210,
0x294a,
0x94a5,
0x39ce,
0x294a,
0x9ce7,
0x318c,
0x294a,
0xa529,
0x294a,
0x294a,
0xad6b,
0x2108,
0x294a,
0xb5ad,
0x18c6,
0x294a,
0xbdef,
0x1084,
0x294a,
0xc631,
0x842,
0x294a,
0xce73,
0x0,
0x294a,
0xd6b5,
0xffff,
0x2108,
0x0,
0xf7bd,
0x2108,
0x0,
0xef7b,
0x2108,
0x0,
0xe739,
0x2108,
0x0,
0xdef7,
0x2108,
0x0,
0xd6b5,
0x2108,
0x842,
0xce73,
0x2108,
0x1084,
0xc631,
0x2108,
0x18c6,
0xbdef,
0x2108,
0x2108,
0xb5ad,
0x2108,
0x294a,
0xad6b,
0x2108,
0x318c,
0xa529,
0x2108,
0x39ce,
0x9ce7,
0x2108,
0x4210,
0x94a5,
0x2108,
0x4a52,
0x8c63,
0x2108,
0x5294,
0x8421,
0x2108,
0x5ad6,
0x7bde,
0x2108,
0x6318,
0x739c,
0x2108,
0x6b5a,
0x6b5a,
0x2108,
0x739c,
0x6318,
0x2108,
0x7bde,
0x5ad6,
0x2108,
0x8421,
0x5294,
0x2108,
0x8c63,
0x4a52,
0x2108,
0x94a5,
0x4210,
0x2108,
0x9ce7,
0x39ce,
0x2108,
0xa529,
0x318c,
0x2108,
0xad6b,
0x294a,
0x2108,
0xb5ad,
0x2108,
0x2108,
0xbdef,
0x18c6,
0x2108,
0xc631,
0x1084,
0x2108,
0xce73,
0x842,
0x2108,
0xd6b5,
0x0,
0x2108,
0xdef7,
0xffff,
0x18c6,
0x0,
0xf7bd,
0x18c6,
0x0,
0xef7b,
0x18c6,
0x0,
0xe739,
0x18c6,
0x0,
0xdef7,
0x18c6,
0x842,
0xd6b5,
0x18c6,
0x1084,
0xce73,
0x18c6,
0x18c6,
0xc631,
0x18c6,
0x2108,
0xbdef,
0x18c6,
0x294a,
0xb5ad,
0x18c6,
0x318c,
0xad6b,
0x18c6,
0x39ce,
0xa529,
0x18c6,
0x4210,
0x9ce7,
0x18c6,
0x4a52,
0x94a5,
0x18c6,
0x5294,
0x8c63,
0x18c6,
0x5ad6,
0x8421,
0x18c6,
0x6318,
0x7bde,
0x18c6,
0x6b5a,
0x739c,
0x18c6,
0x739c,
0x6b5a,
0x18c6,
0x7bde,
0x6318,
0x18c6,
0x8421,
0x5ad6,
0x18c6,
0x8c63,
0x5294,
0x18c6,
0x94a5,
0x4a52,
0x18c6,
0x9ce7,
0x4210,
0x18c6,
0xa529,
0x39ce,
0x18c6,
0xad6b,
0x318c,
0x18c6,
0xb5ad,
0x294a,
0x18c6,
0xbdef,
0x2108,
0x18c6,
0xc631,
0x18c6,
0x18c6,
0xce73,
0x1084,
0x18c6,
0xd6b5,
0x842,
0x18c6,
0xdef7,
0x0,
0x18c6,
0xe739,
0xffff,
0x1084,
0x0,
0xf7bd,
0x1084,
0x0,
0xef7b,
0x1084,
0x0,
0xe739,
0x1084,
0x842,
0xdef7,
0x1084,
0x1084,
0xd6b5,
0x1084,
0x18c6,
0xce73,
0x1084,
0x2108,
0xc631,
0x1084,
0x294a,
0xbdef,
0x1084,
0x318c,
0xb5ad,
0x1084,
0x39ce,
0xad6b,
0x1084,
0x4210,
0xa529,
0x1084,
0x4a52,
0x9ce7,
0x1084,
0x5294,
0x94a5,
0x1084,
0x5ad6,
0x8c63,
0x1084,
0x6318,
0x8421,
0x1084,
0x6b5a,
0x7bde,
0x1084,
0x739c,
0x739c,
0x1084,
0x7bde,
0x6b5a,
0x1084,
0x8421,
0x6318,
0x1084,
0x8c63,
0x5ad6,
0x1084,
0x94a5,
0x5294,
0x1084,
0x9ce7,
0x4a52,
0x1084,
0xa529,
0x4210,
0x1084,
0xad6b,
0x39ce,
0x1084,
0xb5ad,
0x318c,
0x1084,
0xbdef,
0x294a,
0x1084,
0xc631,
0x2108,
0x1084,
0xce73,
0x18c6,
0x1084,
0xd6b5,
0x1084,
0x1084,
0xdef7,
0x842,
0x1084,
0xe739,
0x0,
0x1084,
0xef7b,
0xffff,
0x842,
0x0,
0xf7bd,
0x842,
0x0,
0xef7b,
0x842,
0x842,
0xe739,
0x842,
0x1084,
0xdef7,
0x842,
0x18c6,
0xd6b5,
0x842,
0x2108,
0xce73,
0x842,
0x294a,
0xc631,
0x842,
0x318c,
0xbdef,
0x842,
0x39ce,
0xb5ad,
0x842,
0x4210,
0xad6b,
0x842,
0x4a52,
0xa529,
0x842,
0x5294,
0x9ce7,
0x842,
0x5ad6,
0x94a5,
0x842,
0x6318,
0x8c63,
0x842,
0x6b5a,
0x8421,
0x842,
0x739c,
0x7bde,
0x842,
0x7bde,
0x739c,
0x842,
0x8421,
0x6b5a,
0x842,
0x8c63,
0x6318,
0x842,
0x94a5,
0x5ad6,
0x842,
0x9ce7,
0x5294,
0x842,
0xa529,
0x4a52,
0x842,
0xad6b,
0x4210,
0x842,
0xb5ad,
0x39ce,
0x842,
0xbdef,
0x318c,
0x842,
0xc631,
0x294a,
0x842,
0xce73,
0x2108,
0x842,
0xd6b5,
0x18c6,
0x842,
0xdef7,
0x1084,
0x842,
0xe739,
0x842,
0x842,
0xef7b,
0x0,
0x842,
0xf7bd,
0xffff,
0x0,
0x0,
0xf7bd,
0x0,
0x842,
0xef7b,
0x0,
0x1084,
0xe739,
0x0,
0x18c6,
0xdef7,
0x0,
0x2108,
0xd6b5,
0x0,
0x294a,
0xce73,
0x0,
0x318c,
0xc631,
0x0,
0x39ce,
0xbdef,
0x0,
0x4210,
0xb5ad,
0x0,
0x4a52,
0xad6b,
0x0,
0x5294,
0xa529,
0x0,
0x5ad6,
0x9ce7,
0x0,
0x6318,
0x94a5,
0x0,
0x6b5a,
0x8c63,
0x0,
0x739c,
0x8421,
0x0,
0x7bde,
0x7bde,
0x0,
0x8421,
0x739c,
0x0,
0x8c63,
0x6b5a,
0x0,
0x94a5,
0x6318,
0x0,
0x9ce7,
0x5ad6,
0x0,
0xa529,
0x5294,
0x0,
0xad6b,
0x4a52,
0x0,
0xb5ad,
0x4210,
0x0,
0xbdef,
0x39ce,
0x0,
0xc631,
0x318c,
0x0,
0xce73,
0x294a,
0x0,
0xd6b5,
0x2108,
0x0,
0xdef7,
0x18c6,
0x0,
0xe739,
0x1084,
0x0,
0xef7b,
0x842,
0x0,
0xf7bd,
0x0,
0x0,
0xffff
)
}
private fun getResourceFile(path: String): File =
File(javaClass.classLoader.getResource(path)!!.path)
@Test
fun testByteMod() {
// Int.toByte() は Int値の下位8ビットをByte型で表現する。クリッピングされたりはしない
// ただしKotlinもJavaと同じでbyteは符号付きしかないので面倒くさい…
for (i in -256..256) {
val b = i.toByte()
val i2 = b.toInt() and 255
assertEquals(i and 255, i2)
}
}
@Test
fun testApng1() {
FileInputStream(getResourceFile("walk.apng")).use { inStream ->
ApngDecoder.parseStream(
BufferedInputStream(inStream),
object : ApngDecoderCallback {
override fun onApngWarning(message: String) {
println(message)
}
override fun onApngDebug(message: String) {
println(message)
}
override fun canApngDebug(): Boolean {
return true
}
override fun onAnimationInfo(
apng: Apng,
header: ApngImageHeader,
animationControl: ApngAnimationControl,
) {
println("animationControl=$animationControl")
}
override fun onHeader(apng: Apng, header: ApngImageHeader) {
println("header=$header")
}
override fun onDefaultImage(apng: Apng, bitmap: ApngBitmap) {
println("onDefaultImage w=${bitmap.width},h=${bitmap.height}")
}
override fun onAnimationFrame(
apng: Apng,
frameControl: ApngFrameControl,
frameBitmap: ApngBitmap,
) {
println("onAnimationFrame frameControl=$frameControl")
println("onAnimationFrame w=${frameBitmap.width},h=${frameBitmap.height}")
}
}
)
}
}
@Test
fun test16bitPaeth() {
FileInputStream(getResourceFile("basi2c16.png")).use { inStream ->
ApngDecoder.parseStream(
BufferedInputStream(inStream),
object : ApngDecoderCallback {
override fun onApngWarning(message: String) {
println(message)
}
override fun onApngDebug(message: String) {
println(message)
}
override fun canApngDebug(): Boolean {
return true
}
override fun onAnimationInfo(
apng: Apng,
header: ApngImageHeader,
animationControl: ApngAnimationControl,
) {
println("animationControl=$animationControl")
}
override fun onHeader(apng: Apng, header: ApngImageHeader) {
println("header=$header")
}
override fun onDefaultImage(apng: Apng, bitmap: ApngBitmap) {
println("onDefaultImage w=${bitmap.width},h=${bitmap.height}")
val w = bitmap.width
val h = bitmap.height
val dstPos = bitmap.pointer()
for (y in 0 until h) {
for (x in 0 until w) {
val srcPos = (x + y * w) * 3
val src_r = imageData[srcPos + 0]
val src_g = imageData[srcPos + 1]
val src_b = imageData[srcPos + 2]
dstPos.setXY(x, y)
val dst_r = dstPos.red
val dst_g = dstPos.green
val dst_b = dstPos.blue
assertEquals(
src_r shr 8,
dst_r,
"xy=$x,$y color=${"0x%x".format(dstPos.color)} r",
)
assertEquals(
src_g shr 8,
dst_g,
"xy=$x,$y color=${"0x%x".format(dstPos.color)} g",
)
assertEquals(
src_b shr 8,
dst_b,
"xy=$x,$y color=${"0x%x".format(dstPos.color)} b",
)
}
}
}
override fun onAnimationFrame(
apng: Apng,
frameControl: ApngFrameControl,
frameBitmap: ApngBitmap,
) {
println("onAnimationFrame frameControl=$frameControl")
println("onAnimationFrame w=${frameBitmap.width},h=${frameBitmap.height}")
}
}
)
}
}
}