{
  "generator": "make_samples.py",
  "jpeg_encoder": "cjpeg -quality 92",
  "jpeg_decoder": "djpeg",
  "jpeg_decode_method": "djpeg decodes each JPG to P6 RGB; marker exact-colour counts are read from that decoded raster, not from the SOF marker parser",
  "png_readback_method": "parse PNG chunks and CRCs, unfilter every row, compare decoded RGBA bytes with the expected pixels",
  "method": "nearest-neighbour sampling of the documented continuous crop box; browser resampling differs",
  "fit_rasterisation": "generated Fit rounds the continuous 170.667-row drawing to 171 rows at y = 43; the browser draws fractional rows at y = 42.667 before its own rasterisation",
  "source": {
    "file": "source-grid-1200x800.png",
    "width": 1200,
    "height": 800,
    "bytes": 18951,
    "sha256": "48853b32dcbdfbb1236eeb2fe59b8293151caf45fa5c5c008ef570923b3573f4",
    "png_readback": {
      "width": 1200,
      "height": 800,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 3840000,
      "decoded_rgba_sha256": "afce65459cb20888e7dbead9007bceb53d21ef49137a0744ff4d90473009a18b",
      "expected_rgba_sha256": "afce65459cb20888e7dbead9007bceb53d21ef49137a0744ff4d90473009a18b",
      "pixel_match": true
    }
  },
  "small_label": {
    "text": "SMALL 14 PX",
    "source_band_y": [
      440,
      453
    ],
    "source_mask_white_pixels": 500,
    "source_mask_bbox_xyxy": [
      535,
      440,
      664,
      453
    ],
    "measurement": "rows count only exact-white output pixels whose sampled source coordinate is in this mask; the large PFP / SIZE line is outside the band"
  },
  "canvas": {
    "width": 256,
    "height": 256,
    "ratio": "1:1",
    "status": "tool canvas; Twitch does not publish a profile-picture ratio or circular-display rule on the pages read"
  },
  "exports": [
    {
      "mode": "fill",
      "png": {
        "file": "exports/fill-256x256.png",
        "bytes": 1402,
        "sha256": "1c02bcd277793e6d8aaef60b63edff84db78d5aada0128f3df6aa3610ed15e97",
        "readback": {
          "width": 256,
          "height": 256,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 262144,
          "decoded_rgba_sha256": "0413b605221ef50e3265c7f619e42cc5beb9feb64fa5b11d6897c163f56bf960",
          "expected_rgba_sha256": "0413b605221ef50e3265c7f619e42cc5beb9feb64fa5b11d6897c163f56bf960",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/fill-256x256.jpg",
        "bytes": 9872,
        "sha256": "953173704ec18f1cd87b09247e42e41261c3a33afe9cf665929329556ba67e51",
        "readback": {
          "width": 256,
          "height": 256,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 9872
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 256,
          "height": 256,
          "rgb_bytes": 196608,
          "rgb_sha256": "06950ccb6ad593d295b9ea8014db0b2cba0647ca297aa9d91bb8c92bfb4785c4",
          "marker_exact_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "scale": 0.32,
      "source_region_px": [
        800.0,
        800.0
      ],
      "source_x": 200.0,
      "source_y": 0.0,
      "crop_area_px": 320000.0,
      "crop_share": 0.3333333333333333,
      "pad_area_px": 0,
      "pad_share": 0,
      "transparent_pixels_png": 0,
      "small_label_rows_before_encode": 4,
      "marker_pixels_before_encode": 0,
      "marker_pixels_png_exact": 0,
      "marker_pixels_jpg_decoded_exact": 0,
      "previews": {
        "32": {
          "file": "previews/fill-32.png",
          "bytes": 203,
          "sha256": "b918fa92b4d5ee7731a74b4dff79e3a104a87bd80336f6cce38f193ceddf412f",
          "small_label_rows": 0,
          "readback": {
            "width": 32,
            "height": 32,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 4096,
            "decoded_rgba_sha256": "9586281d6acde9c4591c52b9f9b4f28831e3b61c154bab0bffbf9981e918d1c9",
            "expected_rgba_sha256": "9586281d6acde9c4591c52b9f9b4f28831e3b61c154bab0bffbf9981e918d1c9",
            "pixel_match": true
          }
        },
        "64": {
          "file": "previews/fill-64.png",
          "bytes": 352,
          "sha256": "aef1052d77c443b74f4e2351d2892fca0170c1285fc7279ed57aa4fba4049ff0",
          "small_label_rows": 1,
          "readback": {
            "width": 64,
            "height": 64,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 16384,
            "decoded_rgba_sha256": "b2897127f2cade6106e6ec82cbddef1e7c25055ce5bd2b14caa73e2b180d96fe",
            "expected_rgba_sha256": "b2897127f2cade6106e6ec82cbddef1e7c25055ce5bd2b14caa73e2b180d96fe",
            "pixel_match": true
          }
        },
        "128": {
          "file": "previews/fill-128.png",
          "bytes": 682,
          "sha256": "be952a6bd516e857f58ae82e60e2d293780f1bcbd3bc151d00a287bb9a6001f6",
          "small_label_rows": 2,
          "readback": {
            "width": 128,
            "height": 128,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 65536,
            "decoded_rgba_sha256": "3c2bde132e8f525b5d06f9ff5ddbbfdd6a47512517f02c27eed3f909398a3f10",
            "expected_rgba_sha256": "3c2bde132e8f525b5d06f9ff5ddbbfdd6a47512517f02c27eed3f909398a3f10",
            "pixel_match": true
          }
        }
      }
    },
    {
      "mode": "fit",
      "png": {
        "file": "exports/fit-256x256.png",
        "bytes": 1702,
        "sha256": "57125ad5c01b3c3e8c66bb99c7d51948be3b59971deb2380f97d2791ab5654fd",
        "readback": {
          "width": 256,
          "height": 256,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 262144,
          "decoded_rgba_sha256": "9ca061532e68dc6e0fb2d1f85c6e206917b01012d69e02978916da422c6991aa",
          "expected_rgba_sha256": "9ca061532e68dc6e0fb2d1f85c6e206917b01012d69e02978916da422c6991aa",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/fit-256x256.jpg",
        "bytes": 11017,
        "sha256": "73235a82c4ceda65f8eedc4cef3b69c4c0d491cbe84be6cbc2af44108276c545",
        "readback": {
          "width": 256,
          "height": 256,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 11017
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 256,
          "height": 256,
          "rgb_bytes": 196608,
          "rgb_sha256": "2cf380f2ffb5b7ac012ca70cc4ab527c633439ff403ac797a21800c3907f52e3",
          "marker_exact_pixels": 4,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "scale": 0.21333333333333335,
      "source_region_px": [
        1200,
        800
      ],
      "source_x": 0,
      "source_y": 0,
      "crop_area_px": 0,
      "crop_share": 0,
      "pad_area_px": 21845.33333333333,
      "pad_share": 0.33333333333333326,
      "draw_offset_px": [
        0,
        43
      ],
      "drawn_raster_px": [
        256,
        171
      ],
      "transparent_pixels_png": 21760,
      "small_label_rows_before_encode": 3,
      "marker_pixels_before_encode": 728,
      "marker_pixels_png_exact": 728,
      "marker_pixels_jpg_decoded_exact": 4,
      "previews": {
        "32": {
          "file": "previews/fit-32.png",
          "bytes": 188,
          "sha256": "ba975409d911d32c8f5058a2fded553bc50bf5368c7b47cb95c9d81aafba1db7",
          "small_label_rows": 0,
          "readback": {
            "width": 32,
            "height": 32,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 4096,
            "decoded_rgba_sha256": "a0858bc4048b468f661d78d833ae65770ed9502cfee2e8ac71890757ae87b9e1",
            "expected_rgba_sha256": "a0858bc4048b468f661d78d833ae65770ed9502cfee2e8ac71890757ae87b9e1",
            "pixel_match": true
          }
        },
        "64": {
          "file": "previews/fit-64.png",
          "bytes": 327,
          "sha256": "77daf1b7b17f6f67ac9010b90e17f3d1e45a61373fff0736e6c45dab6914949e",
          "small_label_rows": 1,
          "readback": {
            "width": 64,
            "height": 64,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 16384,
            "decoded_rgba_sha256": "3d63f852926b089b38e854456d375217809fe5fcb77baab69520253739c1ec27",
            "expected_rgba_sha256": "3d63f852926b089b38e854456d375217809fe5fcb77baab69520253739c1ec27",
            "pixel_match": true
          }
        },
        "128": {
          "file": "previews/fit-128.png",
          "bytes": 693,
          "sha256": "e98a454b44dc8c3e5c0913f83ff90e7cae5f0086b559103391e339f809c305b6",
          "small_label_rows": 2,
          "readback": {
            "width": 128,
            "height": 128,
            "colour_type": "RGBA",
            "chunk_crc_ok": true,
            "filter_types": [
              0
            ],
            "chunks": [
              "IHDR",
              "IDAT",
              "IEND"
            ],
            "decoded_rgba_bytes": 65536,
            "decoded_rgba_sha256": "7717b2cef8d2d84ee9618e55a603dc805b93d4cf046ab44f6dfa56aba7ffd3ea",
            "expected_rgba_sha256": "7717b2cef8d2d84ee9618e55a603dc805b93d4cf046ab44f6dfa56aba7ffd3ea",
            "pixel_match": true
          }
        }
      }
    }
  ],
  "png_readbacks": [
    {
      "file": "source-grid-1200x800.png",
      "role": "source",
      "width": 1200,
      "height": 800,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 3840000,
      "decoded_rgba_sha256": "afce65459cb20888e7dbead9007bceb53d21ef49137a0744ff4d90473009a18b",
      "expected_rgba_sha256": "afce65459cb20888e7dbead9007bceb53d21ef49137a0744ff4d90473009a18b",
      "pixel_match": true
    },
    {
      "file": "previews/fill-32.png",
      "role": "fill-preview-32",
      "width": 32,
      "height": 32,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 4096,
      "decoded_rgba_sha256": "9586281d6acde9c4591c52b9f9b4f28831e3b61c154bab0bffbf9981e918d1c9",
      "expected_rgba_sha256": "9586281d6acde9c4591c52b9f9b4f28831e3b61c154bab0bffbf9981e918d1c9",
      "pixel_match": true
    },
    {
      "file": "previews/fill-64.png",
      "role": "fill-preview-64",
      "width": 64,
      "height": 64,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 16384,
      "decoded_rgba_sha256": "b2897127f2cade6106e6ec82cbddef1e7c25055ce5bd2b14caa73e2b180d96fe",
      "expected_rgba_sha256": "b2897127f2cade6106e6ec82cbddef1e7c25055ce5bd2b14caa73e2b180d96fe",
      "pixel_match": true
    },
    {
      "file": "previews/fill-128.png",
      "role": "fill-preview-128",
      "width": 128,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 65536,
      "decoded_rgba_sha256": "3c2bde132e8f525b5d06f9ff5ddbbfdd6a47512517f02c27eed3f909398a3f10",
      "expected_rgba_sha256": "3c2bde132e8f525b5d06f9ff5ddbbfdd6a47512517f02c27eed3f909398a3f10",
      "pixel_match": true
    },
    {
      "file": "exports/fill-256x256.png",
      "role": "fill-export",
      "width": 256,
      "height": 256,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 262144,
      "decoded_rgba_sha256": "0413b605221ef50e3265c7f619e42cc5beb9feb64fa5b11d6897c163f56bf960",
      "expected_rgba_sha256": "0413b605221ef50e3265c7f619e42cc5beb9feb64fa5b11d6897c163f56bf960",
      "pixel_match": true
    },
    {
      "file": "previews/fit-32.png",
      "role": "fit-preview-32",
      "width": 32,
      "height": 32,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 4096,
      "decoded_rgba_sha256": "a0858bc4048b468f661d78d833ae65770ed9502cfee2e8ac71890757ae87b9e1",
      "expected_rgba_sha256": "a0858bc4048b468f661d78d833ae65770ed9502cfee2e8ac71890757ae87b9e1",
      "pixel_match": true
    },
    {
      "file": "previews/fit-64.png",
      "role": "fit-preview-64",
      "width": 64,
      "height": 64,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 16384,
      "decoded_rgba_sha256": "3d63f852926b089b38e854456d375217809fe5fcb77baab69520253739c1ec27",
      "expected_rgba_sha256": "3d63f852926b089b38e854456d375217809fe5fcb77baab69520253739c1ec27",
      "pixel_match": true
    },
    {
      "file": "previews/fit-128.png",
      "role": "fit-preview-128",
      "width": 128,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 65536,
      "decoded_rgba_sha256": "7717b2cef8d2d84ee9618e55a603dc805b93d4cf046ab44f6dfa56aba7ffd3ea",
      "expected_rgba_sha256": "7717b2cef8d2d84ee9618e55a603dc805b93d4cf046ab44f6dfa56aba7ffd3ea",
      "pixel_match": true
    },
    {
      "file": "exports/fit-256x256.png",
      "role": "fit-export",
      "width": 256,
      "height": 256,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 262144,
      "decoded_rgba_sha256": "9ca061532e68dc6e0fb2d1f85c6e206917b01012d69e02978916da422c6991aa",
      "expected_rgba_sha256": "9ca061532e68dc6e0fb2d1f85c6e206917b01012d69e02978916da422c6991aa",
      "pixel_match": true
    },
    {
      "file": "circle/fill-circle-256x256.png",
      "role": "circle-mask",
      "width": 256,
      "height": 256,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 262144,
      "decoded_rgba_sha256": "718e3f220de7f22423eace7c051f50cc79b24c4a675aefc2cc4cc7b945859f39",
      "expected_rgba_sha256": "718e3f220de7f22423eace7c051f50cc79b24c4a675aefc2cc4cc7b945859f39",
      "pixel_match": true
    }
  ],
  "circle": {
    "mask_file": "circle/fill-circle-256x256.png",
    "canvas_pixels": 65536,
    "corner_pixels_excluded": 14068,
    "actual_share": 0.21466064453125,
    "geometric_share": 0.21460183660255172,
    "method": "pixel centres outside radius 128 px from the 256 \u00d7 256 centre",
    "source_export_bytes": 1402,
    "corner_alpha_zero": true,
    "readback": {
      "width": 256,
      "height": 256,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 262144,
      "decoded_rgba_sha256": "718e3f220de7f22423eace7c051f50cc79b24c4a675aefc2cc4cc7b945859f39",
      "expected_rgba_sha256": "718e3f220de7f22423eace7c051f50cc79b24c4a675aefc2cc4cc7b945859f39",
      "pixel_match": true
    }
  }
}
