{
  "schemaVersion": 1,
  "title": "ShrinkDuck PNG Compression Benchmark",
  "publishedDate": "2026-07-27",
  "software": {
    "name": "ShrinkDuck",
    "version": "1.1.0",
    "build": "10"
  },
  "environment": {
    "device": "MacBook Pro",
    "chip": "Apple M5 Max",
    "operatingSystem": "macOS 26.4",
    "sharp": "0.35.3",
    "libvips": "8.18.3"
  },
  "settings": {
    "quality": 65,
    "targetBytes": 0,
    "maxWidth": 0,
    "maxHeight": 0,
    "keepMetadata": false,
    "outputMode": "create compressed copy"
  },
  "calculation": "(inputBytes - outputBytes) / inputBytes * 100",
  "totals": {
    "fixtureCount": 5,
    "compressedCount": 5,
    "skippedCount": 0,
    "inputBytes": 2452009,
    "outputBytes": 413385,
    "savedBytes": 2038624,
    "savedPercent": 83.14
  },
  "fixtures": [
    {
      "name": "Appearance and language",
      "format": "png",
      "inputUrl": "/assets/shrinkduck/appearance-language.png",
      "outputUrl": "/assets/shrinkduck/benchmark/appearance-language-q65.png",
      "width": 1600,
      "height": 1000,
      "inputHasAlpha": false,
      "outputHasAlpha": false,
      "inputBytes": 494353,
      "outputBytes": 78156,
      "savedBytes": 416197,
      "savedPercent": 84.19,
      "qualityUsed": 65,
      "inputSha256": "0c7642bb6a0b26d5fe6b9597a2e9c711d7e7038e884759152b17d9391d84e9ba",
      "outputSha256": "089c4cc55ccb19853287c3296e61df02020a8a821c7adcce858bd9f628d048b0"
    },
    {
      "name": "Compression complete",
      "format": "png",
      "inputUrl": "/assets/shrinkduck/compression-complete.png",
      "outputUrl": "/assets/shrinkduck/benchmark/compression-complete-q65.png",
      "width": 1600,
      "height": 1000,
      "inputHasAlpha": false,
      "outputHasAlpha": false,
      "inputBytes": 644638,
      "outputBytes": 106054,
      "savedBytes": 538584,
      "savedPercent": 83.55,
      "qualityUsed": 65,
      "inputSha256": "b971b078a1c7ba46bf2df44971de618a40ffb22bacaa3a80bdddc97efae0f6ce",
      "outputSha256": "290f9a1ba008c6515ca0025a42d17ce547153643ad09adb2d9d2d0d4e068cda6"
    },
    {
      "name": "Compression pending",
      "format": "png",
      "inputUrl": "/assets/shrinkduck/compression-pending.png",
      "outputUrl": "/assets/shrinkduck/benchmark/compression-pending-q65.png",
      "width": 1600,
      "height": 1000,
      "inputHasAlpha": false,
      "outputHasAlpha": false,
      "inputBytes": 629468,
      "outputBytes": 104954,
      "savedBytes": 524514,
      "savedPercent": 83.33,
      "qualityUsed": 65,
      "inputSha256": "5d0406133849be4c1484a485c62ca01bc5723ed5f2bbfcf9e3659f0ea693a0b5",
      "outputSha256": "a489f4b968a6de0c7606e95ec1131f59e40b44ce05681922c0cd56ae1b452fcd"
    },
    {
      "name": "Format conversion",
      "format": "png",
      "inputUrl": "/assets/shrinkduck/format-conversion.png",
      "outputUrl": "/assets/shrinkduck/benchmark/format-conversion-q65.png",
      "width": 1600,
      "height": 1000,
      "inputHasAlpha": false,
      "outputHasAlpha": false,
      "inputBytes": 594481,
      "outputBytes": 95468,
      "savedBytes": 499013,
      "savedPercent": 83.94,
      "qualityUsed": 65,
      "inputSha256": "87b376c017b0af6ac16ee6d867fc54f48a484f40c5f9ef3e5d47772f16bd7140",
      "outputSha256": "83c42b56f09a0c8c0143b80342a05319c05e1f26722cf9db2860f19188823dd6"
    },
    {
      "name": "App icon with alpha",
      "format": "png",
      "inputUrl": "/assets/shrinkduck/icon.png",
      "outputUrl": "/assets/shrinkduck/benchmark/icon-q65.png",
      "width": 1024,
      "height": 1024,
      "inputHasAlpha": true,
      "outputHasAlpha": true,
      "inputBytes": 89069,
      "outputBytes": 28753,
      "savedBytes": 60316,
      "savedPercent": 67.72,
      "qualityUsed": 65,
      "inputSha256": "9dd34546f455e816046a135c94f35f942aeabdc0d3c6076438c142e219234a17",
      "outputSha256": "14be765462819d89fabc6605d65f0e5fe623e5c41dc138e650db851626d901c2"
    }
  ],
  "notes": [
    "All fixtures are Tuan Labs product assets published on tuanlabs.com.",
    "All files were processed individually with the same documented settings.",
    "Pixel dimensions were preserved in every output.",
    "The app icon retained an alpha channel.",
    "This dataset documents ShrinkDuck only and makes no claim about competing products."
  ]
}
