{
  "source": {
    "file": "source.gif",
    "bytes": 9533,
    "sha256": "6bcb5805ef63c37f64f89ac2a29f49b13baa7d6a8c7a079d458078697bd42744",
    "width": 320,
    "height": 200,
    "frames": 30,
    "durationMs": 2400,
    "loop": 0,
    "artwork": "Original ImageTools geometric animation",
    "license": "GPL-2.0-only",
    "generator": "scripts/draw-animation-example.py",
    "pillowVersion": "12.3.0"
  },
  "outputs": {
    "compressed.gif": {
      "bytes": 6273,
      "sha256": "b6fe58e10e41156ad8dfbf05c58089daf98c99f4868fbbdfe8a97245a0a0e2f6",
      "settings": {
        "allowLossy": false,
        "frameStep": 1,
        "keepMetadata": false
      }
    },
    "converted.webp": {
      "bytes": 66818,
      "sha256": "adba6cf67a4e92ea163494e29a983ff1afb221f45257d1b32bf4eb13a135a958",
      "settings": {
        "webpMode": "lossy",
        "webpQuality": 80,
        "keepMetadata": false
      }
    },
    "converted.avif": {
      "bytes": 36926,
      "sha256": "1aa9bb7787a89dac49ca58b181709db9e62b0b1907d58481bc0bff39238922e6",
      "settings": {
        "avifMode": "lossy",
        "avifQuality": 80,
        "keepMetadata": false
      }
    }
  },
  "rebuild": "IMAGETOOLS_PYTHON=/path/to/python node scripts/prepare-animation-example.mjs",
  "scope": "Measured demonstration of this original animation only. Not a typical compression rate. GIF preserves pixels; WebP and AVIF quality 80 are lossy."
}
