{
  "test_date": "2026-08-05",
  "measurement": "Exact file bytes divided by 1024; reader-facing label: KB",
  "source_policy": "All subjects are original deterministic drawings created by scripts/image-format-test/generate.py.",
  "encoder": {
    "library": "Pillow",
    "version": "12.2.0",
    "jpeg_codec": "8.0",
    "libjpeg_turbo": "3.1.4.1",
    "webp_codec": "1.6.0"
  },
  "files": [
    {
      "subject": "photograph",
      "format": "JPG",
      "width": 640,
      "height": 427,
      "bytes": 43149,
      "displayed_kb": "42.1",
      "encoder_settings": {
        "quality": 82,
        "optimize": true,
        "progressive": false,
        "subsampling": "4:2:0"
      },
      "sha256": "5c9e2c19694bb4ae26271d6e6fd4bd59edee69613c500f85d09abf987f328a10",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/photograph.jpg"
    },
    {
      "subject": "photograph",
      "format": "PNG",
      "width": 640,
      "height": 427,
      "bytes": 84646,
      "displayed_kb": "82.7",
      "encoder_settings": {
        "optimize": true,
        "compress_level": 9
      },
      "sha256": "c8d7968f87319b9fd885287026ad315e7c31be56e5d59e6a9add9ca06514e233",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/photograph.png"
    },
    {
      "subject": "photograph",
      "format": "WebP",
      "width": 640,
      "height": 427,
      "bytes": 29096,
      "displayed_kb": "28.4",
      "encoder_settings": {
        "quality": 82,
        "method": 6,
        "lossless": false,
        "exact": true
      },
      "sha256": "7367c5d893659b22ce5503049117501e7cd23025bcc25975a3c2d2e291abd924",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/photograph.webp"
    },
    {
      "subject": "text-screenshot",
      "format": "JPG",
      "width": 1200,
      "height": 800,
      "bytes": 65261,
      "displayed_kb": "63.7",
      "encoder_settings": {
        "quality": 82,
        "optimize": true,
        "progressive": false,
        "subsampling": "4:2:0"
      },
      "sha256": "fa778a64cb22d69e019b41083510a6dad78652ba52a9541715f45c7d1af787af",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/text-screenshot.jpg"
    },
    {
      "subject": "text-screenshot",
      "format": "PNG",
      "width": 1200,
      "height": 800,
      "bytes": 43968,
      "displayed_kb": "42.9",
      "encoder_settings": {
        "optimize": true,
        "compress_level": 9
      },
      "sha256": "8463fb33b5ab71176bf9ba43a2fb414e0b5af4c479bb2d971e4cb3b69e6f86b8",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/text-screenshot.png"
    },
    {
      "subject": "text-screenshot",
      "format": "WebP",
      "width": 1200,
      "height": 800,
      "bytes": 31022,
      "displayed_kb": "30.3",
      "encoder_settings": {
        "quality": 82,
        "method": 6,
        "lossless": false,
        "exact": true
      },
      "sha256": "2a5cb9a0488566c7e3607e3d217d11d020feae93556a672cfa9fb8ce7d8b2287",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/text-screenshot.webp"
    },
    {
      "subject": "transparent-logo",
      "format": "JPG",
      "width": 1200,
      "height": 800,
      "bytes": 25324,
      "displayed_kb": "24.7",
      "encoder_settings": {
        "quality": 82,
        "optimize": true,
        "progressive": false,
        "subsampling": "4:2:0"
      },
      "sha256": "bc1782175142c3680c8b89236259926904a3a4815ba101cdaef3d8c2cb453d9f",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/transparent-logo.jpg"
    },
    {
      "subject": "transparent-logo",
      "format": "PNG",
      "width": 1200,
      "height": 800,
      "bytes": 14651,
      "displayed_kb": "14.3",
      "encoder_settings": {
        "optimize": true,
        "compress_level": 9
      },
      "sha256": "50b2ae8e3e7af9aae5dcefc78079ced24ed11aa2084fe295b3f4b1a24b7cd7e0",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/transparent-logo.png"
    },
    {
      "subject": "transparent-logo",
      "format": "WebP",
      "width": 1200,
      "height": 800,
      "bytes": 17868,
      "displayed_kb": "17.4",
      "encoder_settings": {
        "quality": 82,
        "method": 6,
        "lossless": false,
        "exact": true
      },
      "sha256": "dbe453609edbef8321d03efb0d5936cbc796f9d4bb3182c4c0160a4a938c1222",
      "filename": "public/blog/jpg-vs-png-vs-webp-file-size-test/test-outputs/transparent-logo.webp"
    }
  ]
}
