{
  "generator": "make_samples.py",
  "jpeg_encoder": "cjpeg -quality 92",
  "jpeg_decoder": "djpeg",
  "jpeg_background": "RGBA composited onto #ffffff before encoding, because JPG has no alpha channel",
  "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; the browser uses its own resampler",
  "sources": [
    {
      "id": "a",
      "file": "sources/source-a-1536x627.png",
      "note": "the shape of the 2026-01-23 public post image, redrawn here from code",
      "width": 1536,
      "height": 627,
      "ratio": "1536:627",
      "bytes": 19294,
      "sha256": "c7cdf075cb5cc9d5080638055aa8002300569131d419e5dd8052a1fa7ef716bf",
      "png_readback": {
        "width": 1536,
        "height": 627,
        "colour_type": "RGBA",
        "chunk_crc_ok": true,
        "filter_types": [
          0
        ],
        "chunks": [
          "IHDR",
          "IDAT",
          "IEND"
        ],
        "decoded_rgba_bytes": 3852288,
        "decoded_rgba_sha256": "a3f2564ef3c41b37e6f3dd9062bfe66b24443c0f78c48933201f4280138c9f0d",
        "expected_rgba_sha256": "a3f2564ef3c41b37e6f3dd9062bfe66b24443c0f78c48933201f4280138c9f0d",
        "pixel_match": true
      },
      "small_label": {
        "text": "SMALL 14 PX",
        "source_band_y": [
          306,
          319
        ],
        "source_mask_white_pixels": 500,
        "source_mask_bbox_xyxy": [
          703,
          306,
          832,
          319
        ]
      }
    },
    {
      "id": "b",
      "file": "sources/source-b-2400x800.png",
      "note": "a second, wider source so the same canvases can be compared",
      "width": 2400,
      "height": 800,
      "ratio": "2400:800",
      "bytes": 30860,
      "sha256": "952a109f06cf1d638799c17751db26eda6e3ae4c6e20b2434fd1e4474bde2a8b",
      "png_readback": {
        "width": 2400,
        "height": 800,
        "colour_type": "RGBA",
        "chunk_crc_ok": true,
        "filter_types": [
          0
        ],
        "chunks": [
          "IHDR",
          "IDAT",
          "IEND"
        ],
        "decoded_rgba_bytes": 7680000,
        "decoded_rgba_sha256": "df68bb2ed3922f0d48495bd20be458921084d7d238cfc2702f30515a8092eaa4",
        "expected_rgba_sha256": "df68bb2ed3922f0d48495bd20be458921084d7d238cfc2702f30515a8092eaa4",
        "pixel_match": true
      },
      "small_label": {
        "text": "SMALL 14 PX",
        "source_band_y": [
          40,
          53
        ],
        "source_mask_white_pixels": 500,
        "source_mask_bbox_xyxy": [
          1135,
          40,
          1264,
          53
        ]
      }
    }
  ],
  "canvases": [
    {
      "id": "desktop",
      "label": "Community desktop",
      "width": 1072,
      "height": 128
    },
    {
      "id": "mobile",
      "label": "Community mobile",
      "width": 1080,
      "height": 128
    }
  ],
  "label_units": {
    "source_mask": "the declared 14-row band in each source; 500 pure-white source pixels per source",
    "label_rows_in_export": "raster rows in the exported canvas that hold a mask pixel (output rows, not source rows)",
    "preview.label_rows": "raster rows in the 320-pixel-wide preview that still hold a mask pixel",
    "preview.label_mask_pixels": "mask-sampled white pixels left in that 320-pixel preview"
  },
  "exports": [
    {
      "source": "a",
      "canvas": "desktop",
      "width": 1072,
      "height": 128,
      "mode": "fill",
      "scale": 0.6979166666666666,
      "source_region_px": [
        1536.0,
        183.40298507462688
      ],
      "source_x": 0.0,
      "source_y": 221.79850746268656,
      "source_rows_sampled": 128,
      "source_row_first": 222,
      "source_row_last": 404,
      "crop_area_px": 681365.0149253731,
      "crop_share": 0.7074912518745983,
      "pad_area_px": 0,
      "pad_share": 0,
      "applied_source_y": 221.79850746268656,
      "png": {
        "file": "exports/a-1072x128-fill.png",
        "bytes": 3839,
        "sha256": "48f4542439a8c2f17095d22cd6a4d22ea9f047c3f4b70818160f751129a8809e",
        "readback": {
          "width": 1072,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 548864,
          "decoded_rgba_sha256": "3e0c7e2c2ccb98fdde8b999fada0d709c2936f6e372c962b0ffb328c18d46407",
          "expected_rgba_sha256": "3e0c7e2c2ccb98fdde8b999fada0d709c2936f6e372c962b0ffb328c18d46407",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/a-1072x128-fill.jpg",
        "bytes": 17711,
        "sha256": "5648807d1f17e0eb3e2feecbb4f1ffc5ea2e561619cd322be7d156b4d099d3bf",
        "readback": {
          "width": 1072,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 17711
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1072,
          "height": 128,
          "rgb_bytes": 411648,
          "rgb_sha256": "f62b2cdbb9b7cc77982f4e374f21426442591853799be25147ef7d113d7b2765",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/a-1072x128-fill-320.png",
        "width": 320,
        "height": 38,
        "bytes": 424,
        "sha256": "64a38b4807c57f602f042b700a674ae028c0aeecb4769f12cd7db9560cb1c7c8",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "b5bdad6b4f76d7df173e40749449cfdf95e1e64df1c8461c0e391115cf65c839",
          "expected_rgba_sha256": "b5bdad6b4f76d7df173e40749449cfdf95e1e64df1c8461c0e391115cf65c839",
          "pixel_match": true
        },
        "label_rows": 2,
        "label_mask_pixels": 11
      },
      "label_rows_in_export": 10,
      "marker_pixels_by_marker": [
        0,
        0,
        0,
        0
      ],
      "marker_fragments_visible": 0,
      "marker_pixels_total": 0,
      "transparent_pixels_png": 0
    },
    {
      "source": "a",
      "canvas": "desktop",
      "width": 1072,
      "height": 128,
      "mode": "fit",
      "scale": 0.20414673046251994,
      "source_region_px": [
        1536.0,
        627.0
      ],
      "source_x": 0,
      "source_y": 0,
      "draw_offset_px": [
        379,
        0
      ],
      "drawn_raster_px": [
        314,
        128
      ],
      "drawn_continuous_px": [
        313.5693779904306,
        128.0
      ],
      "crop_area_px": 0,
      "crop_share": 0,
      "pad_area_px": 97079.11961722487,
      "pad_share": 0.7074912518745983,
      "png": {
        "file": "exports/a-1072x128-fit.png",
        "bytes": 2184,
        "sha256": "e8c6185d28dbe9a984711f149ee52b9c7845855271a53f39ad841b4f19e388eb",
        "readback": {
          "width": 1072,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 548864,
          "decoded_rgba_sha256": "b0560dde09b7cca49a6dd37d90f75c377a358b790e321c2d53debe992a81eb34",
          "expected_rgba_sha256": "b0560dde09b7cca49a6dd37d90f75c377a358b790e321c2d53debe992a81eb34",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/a-1072x128-fit.jpg",
        "bytes": 10385,
        "sha256": "2939e7aa95f48f82a9df1cb07b1d1c2bb28fb0976d065df9d8d4c56305899dea",
        "readback": {
          "width": 1072,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 10385
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1072,
          "height": 128,
          "rgb_bytes": 411648,
          "rgb_sha256": "bc2f288b8c8b2a83180ae8e877b3fa62874c955a9da2613ea20c3efc9603a495",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/a-1072x128-fit-320.png",
        "width": 320,
        "height": 38,
        "bytes": 445,
        "sha256": "ac77e75340f4ae88e8d2886fb4d98b020e29584c241e58534bcc34df1b8a1ce2",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "3e950d29f51fef52468011c44fc05036e18bf700e8282cac0051f02f4e30b276",
          "expected_rgba_sha256": "3e950d29f51fef52468011c44fc05036e18bf700e8282cac0051f02f4e30b276",
          "pixel_match": true
        },
        "label_rows": 1,
        "label_mask_pixels": 3
      },
      "label_rows_in_export": 3,
      "marker_pixels_by_marker": [
        100,
        100,
        100,
        100
      ],
      "marker_fragments_visible": 4,
      "marker_pixels_total": 400,
      "transparent_pixels_png": 97024
    },
    {
      "source": "a",
      "canvas": "mobile",
      "width": 1080,
      "height": 128,
      "mode": "fill",
      "scale": 0.703125,
      "source_region_px": [
        1536.0,
        182.04444444444445
      ],
      "source_x": 0.0,
      "source_y": 222.47777777777776,
      "source_rows_sampled": 128,
      "source_row_first": 223,
      "source_row_last": 403,
      "crop_area_px": 683451.7333333334,
      "crop_share": 0.709657983342194,
      "pad_area_px": 0,
      "pad_share": 0,
      "applied_source_y": 222.47777777777776,
      "png": {
        "file": "exports/a-1080x128-fill.png",
        "bytes": 3863,
        "sha256": "d894691b0fcac59f87c10efa2ce5b46231d356b1c4c235735fdf3a0b3fc605de",
        "readback": {
          "width": 1080,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 552960,
          "decoded_rgba_sha256": "53f8f1542071bb02f3ca26b04c876b15e2955ee69010cefe0773cc561b8e2456",
          "expected_rgba_sha256": "53f8f1542071bb02f3ca26b04c876b15e2955ee69010cefe0773cc561b8e2456",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/a-1080x128-fill.jpg",
        "bytes": 15279,
        "sha256": "511da9122e282bcebc61415cdb67e286d10d258f8118833efddbcbc848c0fb43",
        "readback": {
          "width": 1080,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 15279
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1080,
          "height": 128,
          "rgb_bytes": 414720,
          "rgb_sha256": "afa3aa1181408636f4a6ca5cecdfee3020c31020de9d95d1a559ef811a938803",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/a-1080x128-fill-320.png",
        "width": 320,
        "height": 38,
        "bytes": 416,
        "sha256": "02ca853155653f2df46335be756fcf7d1ff527bed88516e9a7015a24bbb70641",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "ba76e66633c1753f7f41318cdc57eda23a57b490858981fe2f984a954bfac766",
          "expected_rgba_sha256": "ba76e66633c1753f7f41318cdc57eda23a57b490858981fe2f984a954bfac766",
          "pixel_match": true
        },
        "label_rows": 2,
        "label_mask_pixels": 11
      },
      "label_rows_in_export": 10,
      "marker_pixels_by_marker": [
        0,
        0,
        0,
        0
      ],
      "marker_fragments_visible": 0,
      "marker_pixels_total": 0,
      "transparent_pixels_png": 0
    },
    {
      "source": "a",
      "canvas": "mobile",
      "width": 1080,
      "height": 128,
      "mode": "fit",
      "scale": 0.20414673046251994,
      "source_region_px": [
        1536.0,
        627.0
      ],
      "source_x": 0,
      "source_y": 0,
      "draw_offset_px": [
        383,
        0
      ],
      "drawn_raster_px": [
        314,
        128
      ],
      "drawn_continuous_px": [
        313.5693779904306,
        128.0
      ],
      "crop_area_px": 0,
      "crop_share": 0,
      "pad_area_px": 98103.11961722487,
      "pad_share": 0.7096579833421939,
      "png": {
        "file": "exports/a-1080x128-fit.png",
        "bytes": 2182,
        "sha256": "92cbe49fd928d29eb267ccfa182f00874b0a8980daf51953358d975891cfb6e6",
        "readback": {
          "width": 1080,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 552960,
          "decoded_rgba_sha256": "992c4885e7714b8b4069020aa90c37bda2e178c9515d4bf180b34382a4ef4234",
          "expected_rgba_sha256": "992c4885e7714b8b4069020aa90c37bda2e178c9515d4bf180b34382a4ef4234",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/a-1080x128-fit.jpg",
        "bytes": 10457,
        "sha256": "f98386e19b02694c113084afd5bfa9d933f557fcfae133979be703b9fd0e7acd",
        "readback": {
          "width": 1080,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 10457
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1080,
          "height": 128,
          "rgb_bytes": 414720,
          "rgb_sha256": "6d36017afaa54f69ee6dde519bfb18b2519942c276f9d4dc9b50db35960a4e53",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/a-1080x128-fit-320.png",
        "width": 320,
        "height": 38,
        "bytes": 424,
        "sha256": "6bba6908992ecc4636c822074b927b2beb8e91224c9bcf2415a878b1b290e73f",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "620ead9fbc9fbb263c835e1bf7bd95197bd9ae99180919851df83aa4db700a7d",
          "expected_rgba_sha256": "620ead9fbc9fbb263c835e1bf7bd95197bd9ae99180919851df83aa4db700a7d",
          "pixel_match": true
        },
        "label_rows": 1,
        "label_mask_pixels": 3
      },
      "label_rows_in_export": 3,
      "marker_pixels_by_marker": [
        100,
        100,
        100,
        100
      ],
      "marker_fragments_visible": 4,
      "marker_pixels_total": 400,
      "transparent_pixels_png": 98048
    },
    {
      "source": "b",
      "canvas": "desktop",
      "width": 1072,
      "height": 128,
      "mode": "fill",
      "scale": 0.44666666666666666,
      "source_region_px": [
        2400.0,
        286.5671641791045
      ],
      "source_x": 0.0,
      "source_y": 256.7164179104477,
      "source_rows_sampled": 128,
      "source_row_first": 257,
      "source_row_last": 542,
      "crop_area_px": 1232238.805970149,
      "crop_share": 0.6417910447761194,
      "pad_area_px": 0,
      "pad_share": 0,
      "applied_source_y": 256.7164179104477,
      "png": {
        "file": "exports/b-1072x128-fill.png",
        "bytes": 2732,
        "sha256": "92355296a35c2884aa5f64c7a97acd420a7035c2872dbc3cb42694d82fb1333d",
        "readback": {
          "width": 1072,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 548864,
          "decoded_rgba_sha256": "680650b2ee2bcefd1387f14d9e0a53b4fbecc2dce239dedc18ef7e468383f2af",
          "expected_rgba_sha256": "680650b2ee2bcefd1387f14d9e0a53b4fbecc2dce239dedc18ef7e468383f2af",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/b-1072x128-fill.jpg",
        "bytes": 10217,
        "sha256": "8afa2c7da867be5a7b482914a65bbb7d48e44467ecb451de36ddd977db9081ed",
        "readback": {
          "width": 1072,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 10217
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1072,
          "height": 128,
          "rgb_bytes": 411648,
          "rgb_sha256": "0812c86e40a13521d9fb1bdf8747424cd136368802addb7435c31f3824373ae4",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/b-1072x128-fill-320.png",
        "width": 320,
        "height": 38,
        "bytes": 347,
        "sha256": "ba512cd95adf32055461cdef40b7b98e3466df1884d9b29789f78513e3cd8aa2",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "9840f277bd63a2a868597a7ac390d0c16c5dc2bd99827640565893e193cc5784",
          "expected_rgba_sha256": "9840f277bd63a2a868597a7ac390d0c16c5dc2bd99827640565893e193cc5784",
          "pixel_match": true
        },
        "label_rows": 0,
        "label_mask_pixels": 0
      },
      "label_rows_in_export": 0,
      "marker_pixels_by_marker": [
        0,
        0,
        0,
        0
      ],
      "marker_fragments_visible": 0,
      "marker_pixels_total": 0,
      "transparent_pixels_png": 0
    },
    {
      "source": "b",
      "canvas": "desktop",
      "width": 1072,
      "height": 128,
      "mode": "fit",
      "scale": 0.16,
      "source_region_px": [
        2400.0,
        800.0
      ],
      "source_x": 0,
      "source_y": 0,
      "draw_offset_px": [
        344,
        0
      ],
      "drawn_raster_px": [
        384,
        128
      ],
      "drawn_continuous_px": [
        384.0,
        128.0
      ],
      "crop_area_px": 0,
      "crop_share": 0,
      "pad_area_px": 88064.0,
      "pad_share": 0.6417910447761194,
      "png": {
        "file": "exports/b-1072x128-fit.png",
        "bytes": 2127,
        "sha256": "b38537934f72f26cf401e6cfe1c5730e2b03a309fa9c10d891ca191b27c4e968",
        "readback": {
          "width": 1072,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 548864,
          "decoded_rgba_sha256": "f739730f6d7b7dd31a9cd3bcad998d23a214ade2bf5a8d899bf5e5b9800cf13d",
          "expected_rgba_sha256": "f739730f6d7b7dd31a9cd3bcad998d23a214ade2bf5a8d899bf5e5b9800cf13d",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/b-1072x128-fit.jpg",
        "bytes": 9684,
        "sha256": "b341a01947edd36e263ec6f62c213b0652a2dbe0e378120405e478f31d797946",
        "readback": {
          "width": 1072,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 9684
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1072,
          "height": 128,
          "rgb_bytes": 411648,
          "rgb_sha256": "8f14c52d5abf690ec3af58573ab6ad46cf2ed7b095d2c9dc49b6b59e0ae0be86",
          "marker_exact_rgb_pixels": 2,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/b-1072x128-fit-320.png",
        "width": 320,
        "height": 38,
        "bytes": 393,
        "sha256": "bb4e0f9fd7373adc3b99403738ce642999e16b930288f700726b2306424c7cbc",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "86be6b218f9b82f20bda350a3fd7c72d2d87d53af307821fe6cb626d7b25d57b",
          "expected_rgba_sha256": "86be6b218f9b82f20bda350a3fd7c72d2d87d53af307821fe6cb626d7b25d57b",
          "pixel_match": true
        },
        "label_rows": 1,
        "label_mask_pixels": 2
      },
      "label_rows_in_export": 3,
      "marker_pixels_by_marker": [
        64,
        64,
        64,
        64
      ],
      "marker_fragments_visible": 4,
      "marker_pixels_total": 256,
      "transparent_pixels_png": 88064
    },
    {
      "source": "b",
      "canvas": "mobile",
      "width": 1080,
      "height": 128,
      "mode": "fill",
      "scale": 0.45,
      "source_region_px": [
        2400.0,
        284.44444444444446
      ],
      "source_x": 0.0,
      "source_y": 257.77777777777777,
      "source_rows_sampled": 128,
      "source_row_first": 258,
      "source_row_last": 541,
      "crop_area_px": 1237333.3333333333,
      "crop_share": 0.6444444444444444,
      "pad_area_px": 0,
      "pad_share": 0,
      "applied_source_y": 257.77777777777777,
      "png": {
        "file": "exports/b-1080x128-fill.png",
        "bytes": 1469,
        "sha256": "aaa7a349b1cf2225458e192a4357037f79a09399100111ba0aa60dcb0da3e9fc",
        "readback": {
          "width": 1080,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 552960,
          "decoded_rgba_sha256": "17f36e0ce37de24711ae5b6289baa895e232df491be1299356f17df27c061fbf",
          "expected_rgba_sha256": "17f36e0ce37de24711ae5b6289baa895e232df491be1299356f17df27c061fbf",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/b-1080x128-fill.jpg",
        "bytes": 6771,
        "sha256": "a0061186207bc6dd8faa6dc0b6f6662112105d917e28919a774b5e2b48bd929a",
        "readback": {
          "width": 1080,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 6771
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1080,
          "height": 128,
          "rgb_bytes": 414720,
          "rgb_sha256": "4207e73977c310c1bbdfec734f7a11e7722a3909f9f1f8234f0cbb9b8c75b216",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/b-1080x128-fill-320.png",
        "width": 320,
        "height": 38,
        "bytes": 345,
        "sha256": "ccae0d28bb8ae00a601c8d4c3759ac72812adc9be12dfd73c5b5beca98a50b6c",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "756953e4a6c1d2b89c4e6d12a8f3068f92e33a510ef5658f4697f2b6d8fdf65d",
          "expected_rgba_sha256": "756953e4a6c1d2b89c4e6d12a8f3068f92e33a510ef5658f4697f2b6d8fdf65d",
          "pixel_match": true
        },
        "label_rows": 0,
        "label_mask_pixels": 0
      },
      "label_rows_in_export": 0,
      "marker_pixels_by_marker": [
        0,
        0,
        0,
        0
      ],
      "marker_fragments_visible": 0,
      "marker_pixels_total": 0,
      "transparent_pixels_png": 0
    },
    {
      "source": "b",
      "canvas": "mobile",
      "width": 1080,
      "height": 128,
      "mode": "fit",
      "scale": 0.16,
      "source_region_px": [
        2400.0,
        800.0
      ],
      "source_x": 0,
      "source_y": 0,
      "draw_offset_px": [
        348,
        0
      ],
      "drawn_raster_px": [
        384,
        128
      ],
      "drawn_continuous_px": [
        384.0,
        128.0
      ],
      "crop_area_px": 0,
      "crop_share": 0,
      "pad_area_px": 89088.0,
      "pad_share": 0.6444444444444445,
      "png": {
        "file": "exports/b-1080x128-fit.png",
        "bytes": 2144,
        "sha256": "1346b63c3b8adb9d1e34c0b0717cf007cb0b1c5172d30f80d0d9def7b38c132b",
        "readback": {
          "width": 1080,
          "height": 128,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 552960,
          "decoded_rgba_sha256": "0a5ee66730e423c0fd62db4c315e720c21fcd9c15a2d02b77add66c1e903669d",
          "expected_rgba_sha256": "0a5ee66730e423c0fd62db4c315e720c21fcd9c15a2d02b77add66c1e903669d",
          "pixel_match": true
        }
      },
      "jpg": {
        "file": "exports/b-1080x128-fit.jpg",
        "bytes": 9117,
        "sha256": "aa80ee70c107f45bc309314d4c434292950e2ae832f3e3daab8211f4ecc5816f",
        "readback": {
          "width": 1080,
          "height": 128,
          "sof_marker_found": true,
          "has_eoi": true,
          "file_bytes_read": 9117
        },
        "decode": {
          "decoder": "djpeg",
          "decoded": true,
          "width": 1080,
          "height": 128,
          "rgb_bytes": 414720,
          "rgb_sha256": "62fb620ec3433a87d2d772ae00f307402cb84dfd5ea37de65b73ee77cac2008a",
          "marker_exact_rgb_pixels": 0,
          "method": "djpeg decodes the JPG to P6 RGB; exact marker RGB pixels are counted after decoding"
        }
      },
      "preview": {
        "file": "previews/b-1080x128-fit-320.png",
        "width": 320,
        "height": 38,
        "bytes": 400,
        "sha256": "9d7be7d8840c5fd867711589765b902d7f619ff5c8da1bd6dc5d5752d3483584",
        "readback": {
          "width": 320,
          "height": 38,
          "colour_type": "RGBA",
          "chunk_crc_ok": true,
          "filter_types": [
            0
          ],
          "chunks": [
            "IHDR",
            "IDAT",
            "IEND"
          ],
          "decoded_rgba_bytes": 48640,
          "decoded_rgba_sha256": "82af79b667bbcc606d884c46eeadd39e43ca2fe3bf2df1e4bc9bdee4df9ebba5",
          "expected_rgba_sha256": "82af79b667bbcc606d884c46eeadd39e43ca2fe3bf2df1e4bc9bdee4df9ebba5",
          "pixel_match": true
        },
        "label_rows": 1,
        "label_mask_pixels": 2
      },
      "label_rows_in_export": 3,
      "marker_pixels_by_marker": [
        64,
        64,
        64,
        64
      ],
      "marker_fragments_visible": 4,
      "marker_pixels_total": 256,
      "transparent_pixels_png": 89088
    }
  ],
  "negative_controls": {
    "corrupt_png_crc": {
      "file": "negative/corrupt-crc.png",
      "action": "flip one byte inside the IDAT chunk of a valid export",
      "detected": true,
      "error": "bad PNG chunk CRC: negative/corrupt-crc.png",
      "error_type": "ValueError",
      "expects": "bad PNG chunk CRC"
    },
    "shifted_crop": {
      "file": "negative/shifted-crop.png",
      "action": "move the Fill crop down by 0.001 of the source height before sampling",
      "detected": true,
      "differing_pixels": 1920,
      "compared_pixels": 137216,
      "source_y_correct": 221.79850746268656,
      "source_y_shifted": 222.42550746268657,
      "expects": "pixel comparison reports a non-zero difference"
    }
  },
  "png_readbacks": [
    {
      "file": "sources/source-a-1536x627.png",
      "role": "source-a",
      "width": 1536,
      "height": 627,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 3852288,
      "decoded_rgba_sha256": "a3f2564ef3c41b37e6f3dd9062bfe66b24443c0f78c48933201f4280138c9f0d",
      "expected_rgba_sha256": "a3f2564ef3c41b37e6f3dd9062bfe66b24443c0f78c48933201f4280138c9f0d",
      "pixel_match": true
    },
    {
      "file": "sources/source-b-2400x800.png",
      "role": "source-b",
      "width": 2400,
      "height": 800,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 7680000,
      "decoded_rgba_sha256": "df68bb2ed3922f0d48495bd20be458921084d7d238cfc2702f30515a8092eaa4",
      "expected_rgba_sha256": "df68bb2ed3922f0d48495bd20be458921084d7d238cfc2702f30515a8092eaa4",
      "pixel_match": true
    },
    {
      "file": "exports/a-1072x128-fill.png",
      "role": "a-1072x128-fill",
      "width": 1072,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 548864,
      "decoded_rgba_sha256": "3e0c7e2c2ccb98fdde8b999fada0d709c2936f6e372c962b0ffb328c18d46407",
      "expected_rgba_sha256": "3e0c7e2c2ccb98fdde8b999fada0d709c2936f6e372c962b0ffb328c18d46407",
      "pixel_match": true
    },
    {
      "file": "exports/a-1072x128-fit.png",
      "role": "a-1072x128-fit",
      "width": 1072,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 548864,
      "decoded_rgba_sha256": "b0560dde09b7cca49a6dd37d90f75c377a358b790e321c2d53debe992a81eb34",
      "expected_rgba_sha256": "b0560dde09b7cca49a6dd37d90f75c377a358b790e321c2d53debe992a81eb34",
      "pixel_match": true
    },
    {
      "file": "exports/a-1080x128-fill.png",
      "role": "a-1080x128-fill",
      "width": 1080,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 552960,
      "decoded_rgba_sha256": "53f8f1542071bb02f3ca26b04c876b15e2955ee69010cefe0773cc561b8e2456",
      "expected_rgba_sha256": "53f8f1542071bb02f3ca26b04c876b15e2955ee69010cefe0773cc561b8e2456",
      "pixel_match": true
    },
    {
      "file": "exports/a-1080x128-fit.png",
      "role": "a-1080x128-fit",
      "width": 1080,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 552960,
      "decoded_rgba_sha256": "992c4885e7714b8b4069020aa90c37bda2e178c9515d4bf180b34382a4ef4234",
      "expected_rgba_sha256": "992c4885e7714b8b4069020aa90c37bda2e178c9515d4bf180b34382a4ef4234",
      "pixel_match": true
    },
    {
      "file": "exports/b-1072x128-fill.png",
      "role": "b-1072x128-fill",
      "width": 1072,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 548864,
      "decoded_rgba_sha256": "680650b2ee2bcefd1387f14d9e0a53b4fbecc2dce239dedc18ef7e468383f2af",
      "expected_rgba_sha256": "680650b2ee2bcefd1387f14d9e0a53b4fbecc2dce239dedc18ef7e468383f2af",
      "pixel_match": true
    },
    {
      "file": "exports/b-1072x128-fit.png",
      "role": "b-1072x128-fit",
      "width": 1072,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 548864,
      "decoded_rgba_sha256": "f739730f6d7b7dd31a9cd3bcad998d23a214ade2bf5a8d899bf5e5b9800cf13d",
      "expected_rgba_sha256": "f739730f6d7b7dd31a9cd3bcad998d23a214ade2bf5a8d899bf5e5b9800cf13d",
      "pixel_match": true
    },
    {
      "file": "exports/b-1080x128-fill.png",
      "role": "b-1080x128-fill",
      "width": 1080,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 552960,
      "decoded_rgba_sha256": "17f36e0ce37de24711ae5b6289baa895e232df491be1299356f17df27c061fbf",
      "expected_rgba_sha256": "17f36e0ce37de24711ae5b6289baa895e232df491be1299356f17df27c061fbf",
      "pixel_match": true
    },
    {
      "file": "exports/b-1080x128-fit.png",
      "role": "b-1080x128-fit",
      "width": 1080,
      "height": 128,
      "colour_type": "RGBA",
      "chunk_crc_ok": true,
      "filter_types": [
        0
      ],
      "chunks": [
        "IHDR",
        "IDAT",
        "IEND"
      ],
      "decoded_rgba_bytes": 552960,
      "decoded_rgba_sha256": "0a5ee66730e423c0fd62db4c315e720c21fcd9c15a2d02b77add66c1e903669d",
      "expected_rgba_sha256": "0a5ee66730e423c0fd62db4c315e720c21fcd9c15a2d02b77add66c1e903669d",
      "pixel_match": true
    }
  ]
}
