{
  "schemaVersion": 1,
  "checkedAt": "2026-10-17 Asia/Shanghai",
  "publicCopy": {
    "basenameOnly": true,
    "description": "Actual completed native BMP-output evidence; initial preparation product0/notYetVerified fields are omitted from public input facts."
  },
  "nativeBytesUnmodified": true,
  "inputVerification": {
    "checks": 40,
    "passed": 40,
    "failed": 0
  },
  "primaryVerification": {
    "checks": 56,
    "passed": 56,
    "failed": 0
  },
  "independentVerification": {
    "checks": 59,
    "passed": 59,
    "failed": 0
  },
  "independentBmpParserVerification": {
    "checks": 30,
    "passed": 30,
    "failed": 0
  },
  "verificationCountsKeptSeparate": true,
  "inputFacts": {
    "createdAt": "2026-10-17 Asia/Shanghai",
    "fixtureFile": "synthetic-bitmap.bmp",
    "provenance": "Completely self-authored RGB drawing with original 5x7 bitmap glyphs; BMP file header, BITMAPINFOHEADER and bottom-up padded BGR rows written explicitly by prepare_bmp_input.py.",
    "bytes": 771578,
    "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6",
    "magicHex": "424d",
    "magicAscii": "BM",
    "fileHeader": {
      "bfType": "BM",
      "bfSize": 771578,
      "bfReserved1": 0,
      "bfReserved2": 0,
      "bfOffBits": 54
    },
    "dibHeader": {
      "biSize": 40,
      "type": "BITMAPINFOHEADER",
      "biWidth": 641,
      "biHeight": 401,
      "positiveHeightBottomUp": true,
      "biPlanes": 1,
      "biBitCount": 24,
      "biCompression": 0,
      "compressionName": "BI_RGB",
      "biSizeImage": 771524,
      "biXPelsPerMeter": 0,
      "biYPelsPerMeter": 0,
      "biClrUsed": 0,
      "biClrImportant": 0
    },
    "rowBytesWithoutPadding": 1923,
    "rowStride": 1924,
    "paddingBytesPerRow": 1,
    "paddingByteHex": "00",
    "rowStorage": "BGR triples, bottom row first; one zero padding byte after every row",
    "decodedRGB": {
      "width": 641,
      "height": 401,
      "channels": 3,
      "mode": "RGB",
      "bytes": 771123,
      "sha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "ordering": "top-to-bottom RGB triples"
    },
    "alpha": {
      "present": false,
      "reason": "24-bit BI_RGB stores BGR triples without an alpha channel; this fixture is wholly opaque"
    },
    "icc": {
      "present": false,
      "reason": "40-byte BITMAPINFOHEADER has no embedded-profile fields; pixel data immediately follows the headers and reaches exact EOF"
    },
    "physicalDensity": {
      "xPelsPerMeter": 0,
      "yPelsPerMeter": 0,
      "meaning": "Unspecified; no DPI claim or conversion setting is implied"
    },
    "cornerSamples": {
      "A": {
        "xy": [
          20,
          20
        ],
        "rgb": [
          214,
          63,
          69
        ]
      },
      "B": {
        "xy": [
          570,
          20
        ],
        "rgb": [
          35,
          122,
          67
        ]
      },
      "C": {
        "xy": [
          20,
          330
        ],
        "rgb": [
          36,
          93,
          202
        ]
      },
      "D": {
        "xy": [
          570,
          330
        ],
        "rgb": [
          131,
          62,
          178
        ]
      }
    },
    "gradient": {
      "box": [
        96,
        164,
        544,
        270
      ],
      "rgbStops": [
        [
          24,
          61,
          132
        ],
        [
          21,
          137,
          158
        ],
        [
          82,
          170,
          94
        ],
        [
          227,
          169,
          62
        ],
        [
          215,
          64,
          80
        ]
      ]
    },
    "arrowSample": {
      "xy": [
        320,
        86
      ],
      "rgb": [
        25,
        39,
        59
      ],
      "direction": "up"
    },
    "fineLines": [
      {
        "from": [
          103,
          306
        ],
        "to": [
          537,
          306
        ],
        "thicknessPixels": 1
      },
      {
        "from": [
          103,
          316
        ],
        "to": [
          537,
          317
        ],
        "thicknessPixels": 2
      },
      {
        "from": [
          103,
          328
        ],
        "to": [
          537,
          330
        ],
        "thicknessPixels": 3
      }
    ],
    "pillowReadback": {
      "format": "BMP",
      "mode": "RGB",
      "size": [
        641,
        401
      ],
      "rgbSha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "hasAlphaBand": false,
      "iccProfilePresent": false
    }
  },
  "primaryObservation": {
    "stage": "actual_native_output_analysis",
    "checkedAt": "2026-10-17 Asia/Shanghai",
    "reportFilesUseBasenamesOnly": true,
    "files": [
      {
        "file": "synthetic-bitmap.bmp",
        "bytes": 771578,
        "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6"
      },
      {
        "file": "jpeg-native.jpg",
        "bytes": 37519,
        "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5"
      },
      {
        "file": "png-native.png",
        "bytes": 13239,
        "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832"
      },
      {
        "file": "jpeg-settings.jpg",
        "bytes": 82039,
        "sha256": "ecbd1b13f34246a3a1854b91cc89660752d499889d26fe5312d4f2a6de478c3c"
      },
      {
        "file": "png-settings.jpg",
        "bytes": 82606,
        "sha256": "0e3badf56adfa3e5ca8697ba7773b0df7d484db0dcb1ca6b69c2153870c9141b"
      },
      {
        "file": "product-run-receipt.json",
        "bytes": 1213,
        "sha256": "6d3c84f01ea5e3c6e9edbe951139c6a57d96b3ec4839a9f691dcb43171831a6c"
      }
    ],
    "inputPreparationChecksSeparate": {
      "file": "input-only-checks.json",
      "checks": 40,
      "passed": 40,
      "failed": 0,
      "includedInPrimaryOutputCount": false
    },
    "input": {
      "width": 641,
      "height": 401,
      "positiveHeightBottomUp": true,
      "bpp": 24,
      "compression": 0,
      "dibHeaderBytes": 40,
      "pixelOffset": 54,
      "stride": 1924,
      "paddingBytesPerRow": 1,
      "pixelArrayBytes": 771524,
      "xPelsPerMeter": 0,
      "yPelsPerMeter": 0,
      "paletteEntries": 0,
      "file": "synthetic-bitmap.bmp",
      "bytes": 771578,
      "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6",
      "decodedRGBSha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "hasAlpha": false,
      "hasEmbeddedICC": false
    },
    "png": {
      "file": "png-native.png",
      "bytes": 13239,
      "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832",
      "format": "PNG",
      "mode": "RGBA",
      "width": 641,
      "height": 401,
      "decodedRGBSha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "completeRGBEqualsInput": true,
      "alpha": {
        "pixels": 257041,
        "fullyOpaquePixels": 257041,
        "fullyTransparentPixels": 0,
        "partiallyTransparentPixels": 0,
        "minimum": 255,
        "maximum": 255
      },
      "structure": {
        "ihdr": {
          "width": 641,
          "height": 401,
          "bitDepth": 8,
          "colorType": 6,
          "compression": 0,
          "filterMethod": 0,
          "interlace": 0
        },
        "chunks": [
          {
            "type": "IHDR",
            "bytes": 13,
            "crcValid": true
          },
          {
            "type": "IDAT",
            "bytes": 4096,
            "crcValid": true
          },
          {
            "type": "IDAT",
            "bytes": 4096,
            "crcValid": true
          },
          {
            "type": "IDAT",
            "bytes": 4096,
            "crcValid": true
          },
          {
            "type": "IDAT",
            "bytes": 840,
            "crcValid": true
          },
          {
            "type": "IDAT",
            "bytes": 6,
            "crcValid": true
          },
          {
            "type": "IEND",
            "bytes": 0,
            "crcValid": true
          }
        ],
        "endsAtEOF": true,
        "allCrcValid": true,
        "embeddedICC": false,
        "exifChunk": false
      },
      "pixelDifference": {
        "pixels": 257041,
        "changedPixels": 0,
        "changedChannels": 0,
        "absoluteErrorSum": 0,
        "meanAbsoluteErrorPerChannel": 0.0,
        "maxAbsoluteErrorPerChannel": 0,
        "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
      }
    },
    "jpeg": {
      "file": "jpeg-native.jpg",
      "bytes": 37519,
      "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5",
      "format": "JPEG",
      "mode": "RGB",
      "width": 641,
      "height": 401,
      "decodedRGBSha256": "daff2d0682ae85fa247f3842c5ff85de404b37cd3e5697e66281f7685a6b6669",
      "hasAlpha": false,
      "structure": {
        "sof": {
          "marker": "FFC0",
          "precision": 8,
          "width": 641,
          "height": 401,
          "channels": 3
        },
        "segmentsBeforeScan": [
          {
            "marker": "FFE0",
            "payloadBytes": 14
          },
          {
            "marker": "FFE2",
            "payloadBytes": 470
          },
          {
            "marker": "FFDB",
            "payloadBytes": 65
          },
          {
            "marker": "FFDB",
            "payloadBytes": 65
          },
          {
            "marker": "FFC0",
            "payloadBytes": 15
          },
          {
            "marker": "FFC4",
            "payloadBytes": 28
          },
          {
            "marker": "FFC4",
            "payloadBytes": 100
          },
          {
            "marker": "FFC4",
            "payloadBytes": 26
          },
          {
            "marker": "FFC4",
            "payloadBytes": 69
          }
        ],
        "jfif": {
          "version": [
            1,
            1
          ],
          "densityUnit": 0,
          "densityX": 1,
          "densityY": 1,
          "meaning": "Unit0 stores aspect-ratio density values, not physical DPI"
        },
        "hasExifAPP1": false,
        "icc": {
          "profileBytes": 456,
          "profileSha256": "12afb4d9953adee0607d347daee5b78b18d6b3cab2d572b88970703f5edb37bc",
          "chunkCount": 1,
          "declaredChunkCount": 1,
          "app2PayloadBytes": [
            470
          ],
          "declaredProfileBytes": 456,
          "signature": "acsp"
        },
        "endsWithEOI": true
      },
      "pixelDifference": {
        "pixels": 257041,
        "changedPixels": 249253,
        "changedChannels": 420662,
        "absoluteErrorSum": 1189394,
        "meanAbsoluteErrorPerChannel": 1.5424180059471706,
        "maxAbsoluteErrorPerChannel": 92,
        "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
      },
      "regionalDifferences": {
        "title_bitmap_letters": {
          "boxExclusiveEnd": [
            200,
            18,
            442,
            66
          ],
          "pixels": 11616,
          "changedPixels": 11616,
          "changedChannels": 25677,
          "absoluteErrorSum": 79892,
          "meanAbsoluteErrorPerChannel": 2.292584940312213,
          "maxAbsoluteErrorPerChannel": 25,
          "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
        },
        "fine_lines_and_small_text": {
          "boxExclusiveEnd": [
            99,
            280,
            542,
            351
          ],
          "pixels": 31453,
          "changedPixels": 31453,
          "changedChannels": 69067,
          "absoluteErrorSum": 335018,
          "meanAbsoluteErrorPerChannel": 3.55046153520067,
          "maxAbsoluteErrorPerChannel": 92,
          "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
        },
        "gradient": {
          "boxExclusiveEnd": [
            96,
            164,
            545,
            271
          ],
          "pixels": 48043,
          "changedPixels": 42365,
          "changedChannels": 78250,
          "absoluteErrorSum": 153622,
          "meanAbsoluteErrorPerChannel": 1.065864607400315,
          "maxAbsoluteErrorPerChannel": 68,
          "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
        },
        "bottom_bitmap_letters": {
          "boxExclusiveEnd": [
            224,
            357,
            417,
            394
          ],
          "pixels": 7141,
          "changedPixels": 7141,
          "changedChannels": 16011,
          "absoluteErrorSum": 51031,
          "meanAbsoluteErrorPerChannel": 2.3820660038276618,
          "maxAbsoluteErrorPerChannel": 24,
          "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
        }
      },
      "differenceIsExpectedObservationNotFailure": true
    },
    "corners": {
      "A": {
        "xy": [
          20,
          20
        ],
        "inputRGB": [
          214,
          63,
          69
        ],
        "pngRGB": [
          214,
          63,
          69
        ],
        "jpegRGB": [
          214,
          63,
          70
        ],
        "jpegNearestOriginalCornerPalette": "A",
        "jpegAbsoluteDifference": [
          0,
          0,
          1
        ]
      },
      "B": {
        "xy": [
          570,
          20
        ],
        "inputRGB": [
          35,
          122,
          67
        ],
        "pngRGB": [
          35,
          122,
          67
        ],
        "jpegRGB": [
          37,
          121,
          69
        ],
        "jpegNearestOriginalCornerPalette": "B",
        "jpegAbsoluteDifference": [
          2,
          1,
          2
        ]
      },
      "C": {
        "xy": [
          20,
          330
        ],
        "inputRGB": [
          36,
          93,
          202
        ],
        "pngRGB": [
          36,
          93,
          202
        ],
        "jpegRGB": [
          38,
          92,
          201
        ],
        "jpegNearestOriginalCornerPalette": "C",
        "jpegAbsoluteDifference": [
          2,
          1,
          1
        ]
      },
      "D": {
        "xy": [
          570,
          330
        ],
        "inputRGB": [
          131,
          62,
          178
        ],
        "pngRGB": [
          131,
          62,
          178
        ],
        "jpegRGB": [
          130,
          65,
          169
        ],
        "jpegNearestOriginalCornerPalette": "D",
        "jpegAbsoluteDifference": [
          1,
          3,
          9
        ]
      }
    },
    "visualReadback": {
      "method": "Local raw JPEG and PNG inspected with image viewer; no reconstructed output substituted",
      "observed": [
        "A red and B green above C blue and D purple; upward arrow remains upward",
        "Title and bottom bitmap lettering remain readable in these displayed files",
        "JPEG gradient, tiny letters and fine-line edges differ numerically from input; PNG RGB is identical for every pixel"
      ],
      "screenshots": {
        "jpeg-settings.jpg": "Actual pre-run settings with JPEG selected and keepEXIF checked; not a successful-output screenshot",
        "png-settings.jpg": "Actual pre-run settings with PNG selected and keepEXIF checked; not a successful-output screenshot"
      }
    },
    "actualOperations": {
      "fixtureUploads": 1,
      "inputFiles": 1,
      "inputFile": "synthetic-bitmap.bmp",
      "fileInputAccept": "image/*",
      "conversionRuns": 2,
      "outputFormats": [
        "JPEG",
        "PNG"
      ],
      "singleImageDownloads": 2,
      "nativeZipDownloads": 0,
      "keepExif": true,
      "originalOutputFormatRestoredJpegWithoutThirdRun": true,
      "ownToolTabClosedAfterReceipt": true
    },
    "researchEvidenceSeparate": {
      "visible": "keyword-research-visible.json",
      "export": "keyword-research-export.csv",
      "review": "keyword-research-review.json",
      "seed": "bmp转jpg",
      "duration": "3M",
      "dateBounds": [
        "2026-07-17",
        "2026-10-14"
      ],
      "scope": "All countries/languages/devices",
      "seedMarketImpressions": 938,
      "forwardEnglishRelatedKeyword": "bmp to jpg",
      "forwardEnglishRelatedMarketImpressions": 2219,
      "exportRows": 10,
      "meaning": "Bing market observations over the selected period, not monthly volume, site traffic, live rank or SEO outcome",
      "unsupportedInverseQueries": [
        "jpg转bmp",
        "png转bmp"
      ],
      "historicalTimingNote": "Research review was recorded before this product run; its not-yet-tested wording is preserved as time-specific evidence"
    },
    "limits": [
      "Only this self-authored 641x401, 24-bit BI_RGB bottom-up BMP and these two actual downloads were tested",
      "PNG RGBA has alpha 255 everywhere because the input is wholly opaque; this is not automatic background removal",
      "JPEG numeric changes are observed re-encoding differences, not failure of an exact-match promise",
      "No inference about arbitrary BMP, 32-bit alpha, indexed palette, RLE, bitfields, top-down files, batch, browser variation or physical DPI",
      "Keep EXIF true on an input with no EXIF does not prove metadata-preservation capability",
      "Output sizes describe only these files; no universal compression or color-equivalence guarantee",
      "JPEG output contains a 456-byte embedded ICC profile in a 470-byte APP2 payload and JFIF unit 0 ratio 1x1; unit 0 is not a physical DPI setting",
      "Native ZIP downloads 0; any future proof ZIP is locally assembled"
    ],
    "pathScan": {
      "findings": [],
      "passed": true,
      "scope": "All string values in this report before adding numeric verification results"
    },
    "primaryVerification": {
      "checks": 56,
      "passed": 56,
      "failed": 0,
      "includesIndependentOutputChecks": false,
      "includesInputPreparationChecks": false
    },
    "results": [
      {
        "name": "fixture_hash_bound_to_prepared_input",
        "passed": true,
        "actual": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6",
        "expected": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6"
      },
      {
        "name": "BMP_manual_RGB_decode_bound_to_input",
        "passed": true,
        "actual": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
        "expected": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902"
      },
      {
        "name": "BMP_input_dimensions",
        "passed": true,
        "actual": [
          641,
          401
        ],
        "expected": [
          641,
          401
        ]
      },
      {
        "name": "BMP_input_stride",
        "passed": true,
        "actual": 1924,
        "expected": 1924
      },
      {
        "name": "JPEG_magic",
        "passed": true,
        "actual": "ffd8",
        "expected": "ffd8"
      },
      {
        "name": "PNG_magic",
        "passed": true,
        "actual": "89504e470d0a1a0a",
        "expected": "89504e470d0a1a0a"
      },
      {
        "name": "JPEG_actual_file_bytes",
        "passed": true,
        "actual": 37519,
        "expected": 37519
      },
      {
        "name": "PNG_actual_file_bytes",
        "passed": true,
        "actual": 13239,
        "expected": 13239
      },
      {
        "name": "JPEG_Pillow_format",
        "passed": true,
        "actual": "JPEG",
        "expected": "JPEG"
      },
      {
        "name": "PNG_Pillow_format",
        "passed": true,
        "actual": "PNG",
        "expected": "PNG"
      },
      {
        "name": "JPEG_Pillow_mode",
        "passed": true,
        "actual": "RGB",
        "expected": "RGB"
      },
      {
        "name": "PNG_Pillow_mode",
        "passed": true,
        "actual": "RGBA",
        "expected": "RGBA"
      },
      {
        "name": "JPEG_Pillow_dimensions",
        "passed": true,
        "actual": [
          641,
          401
        ],
        "expected": [
          641,
          401
        ]
      },
      {
        "name": "PNG_Pillow_dimensions",
        "passed": true,
        "actual": [
          641,
          401
        ],
        "expected": [
          641,
          401
        ]
      },
      {
        "name": "JPEG_SOF_dimensions",
        "passed": true,
        "actual": [
          641,
          401
        ],
        "expected": [
          641,
          401
        ]
      },
      {
        "name": "JPEG_SOF_precision_channels",
        "passed": true,
        "actual": [
          8,
          3
        ],
        "expected": [
          8,
          3
        ]
      },
      {
        "name": "JPEG_ends_with_EOI",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "PNG_IHDR_dimensions",
        "passed": true,
        "actual": [
          641,
          401
        ],
        "expected": [
          641,
          401
        ]
      },
      {
        "name": "PNG_IHDR_bit_depth_color_type",
        "passed": true,
        "actual": [
          8,
          6
        ],
        "expected": [
          8,
          6
        ]
      },
      {
        "name": "PNG_IHDR_compression_filter_interlace",
        "passed": true,
        "actual": [
          0,
          0,
          0
        ],
        "expected": [
          0,
          0,
          0
        ]
      },
      {
        "name": "PNG_all_chunk_CRC_valid",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "PNG_ends_at_IEND_EOF",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "PNG_complete_RGB_byte_count",
        "passed": true,
        "actual": 771123,
        "expected": 771123
      },
      {
        "name": "PNG_complete_RGB_equals_decoded_BMP",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "PNG_alpha_plane_pixels",
        "passed": true,
        "actual": 257041,
        "expected": 257041
      },
      {
        "name": "PNG_all_alpha_255",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "PNG_no_embedded_ICC_chunk",
        "passed": true,
        "actual": false,
        "expected": false
      },
      {
        "name": "PNG_no_eXIf_chunk",
        "passed": true,
        "actual": false,
        "expected": false
      },
      {
        "name": "JPEG_JFIF_unit_unspecified_physical_density",
        "passed": true,
        "actual": 0,
        "expected": 0
      },
      {
        "name": "JPEG_JFIF_ratio",
        "passed": true,
        "actual": [
          1,
          1
        ],
        "expected": [
          1,
          1
        ]
      },
      {
        "name": "JPEG_ICC_profile_bytes",
        "passed": true,
        "actual": 456,
        "expected": 456
      },
      {
        "name": "JPEG_ICC_APP2_payload_bytes",
        "passed": true,
        "actual": [
          470
        ],
        "expected": [
          470
        ]
      },
      {
        "name": "JPEG_ICC_chunk_counts",
        "passed": true,
        "actual": [
          1,
          1
        ],
        "expected": [
          1,
          1
        ]
      },
      {
        "name": "JPEG_ICC_declared_length_matches_bytes",
        "passed": true,
        "actual": 456,
        "expected": 456
      },
      {
        "name": "JPEG_ICC_signature",
        "passed": true,
        "actual": "acsp",
        "expected": "acsp"
      },
      {
        "name": "JPEG_ICC_Pillow_matches_segment_parser",
        "passed": true,
        "actual": 456,
        "expected": 456
      },
      {
        "name": "JPEG_no_EXIF_APP1_in_this_output",
        "passed": true,
        "actual": false,
        "expected": false
      },
      {
        "name": "PNG_corner_A_exact",
        "passed": true,
        "actual": [
          214,
          63,
          69
        ],
        "expected": [
          214,
          63,
          69
        ]
      },
      {
        "name": "JPEG_corner_A_nearest_original_palette",
        "passed": true,
        "actual": "A",
        "expected": "A"
      },
      {
        "name": "PNG_corner_B_exact",
        "passed": true,
        "actual": [
          35,
          122,
          67
        ],
        "expected": [
          35,
          122,
          67
        ]
      },
      {
        "name": "JPEG_corner_B_nearest_original_palette",
        "passed": true,
        "actual": "B",
        "expected": "B"
      },
      {
        "name": "PNG_corner_C_exact",
        "passed": true,
        "actual": [
          36,
          93,
          202
        ],
        "expected": [
          36,
          93,
          202
        ]
      },
      {
        "name": "JPEG_corner_C_nearest_original_palette",
        "passed": true,
        "actual": "C",
        "expected": "C"
      },
      {
        "name": "PNG_corner_D_exact",
        "passed": true,
        "actual": [
          131,
          62,
          178
        ],
        "expected": [
          131,
          62,
          178
        ]
      },
      {
        "name": "JPEG_corner_D_nearest_original_palette",
        "passed": true,
        "actual": "D",
        "expected": "D"
      },
      {
        "name": "PNG_up_arrow_sample_exact",
        "passed": true,
        "actual": [
          25,
          39,
          59
        ],
        "expected": [
          25,
          39,
          59
        ]
      },
      {
        "name": "receipt_fixture_name",
        "passed": true,
        "actual": "synthetic-bitmap.bmp",
        "expected": "synthetic-bitmap.bmp"
      },
      {
        "name": "receipt_one_upload",
        "passed": true,
        "actual": 1,
        "expected": 1
      },
      {
        "name": "receipt_two_conversion_runs",
        "passed": true,
        "actual": 2,
        "expected": 2
      },
      {
        "name": "receipt_output_formats",
        "passed": true,
        "actual": [
          "JPEG",
          "PNG"
        ],
        "expected": [
          "JPEG",
          "PNG"
        ]
      },
      {
        "name": "receipt_two_single_downloads",
        "passed": true,
        "actual": 2,
        "expected": 2
      },
      {
        "name": "receipt_no_native_ZIP",
        "passed": true,
        "actual": 0,
        "expected": 0
      },
      {
        "name": "receipt_keep_EXIF_enabled",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "receipt_restored_JPEG_without_third_run",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "receipt_created_tab_closed",
        "passed": true,
        "actual": true,
        "expected": true
      },
      {
        "name": "report_has_no_local_absolute_paths",
        "passed": true,
        "actual": [],
        "expected": []
      }
    ]
  },
  "independentObservation": {
    "schema": "independent-bmp-native-output-checks-v1",
    "method": "Raw BMP and PNG parsed with Python standard library; Pillow only decodes JPEG. No main output report or main checker was read.",
    "files": {
      "input": {
        "basename": "synthetic-bitmap.bmp",
        "bytes": 771578,
        "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6"
      },
      "jpeg": {
        "basename": "jpeg-native.jpg",
        "bytes": 37519,
        "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5"
      },
      "png": {
        "basename": "png-native.png",
        "bytes": 13239,
        "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832"
      }
    },
    "verifier": {
      "basename": "verify_bmp_outputs_independent.py",
      "sha256": "d91ac99efdb922390000bef5aabe997c6e4fa6a047d95b1566776176fef43763"
    },
    "input_parser_validation": {
      "total": 30,
      "passed": 30,
      "failed": 0,
      "checks": [
        {
          "id": "bmp_signature",
          "passed": true
        },
        {
          "id": "bmp_file_size_declared_equals_actual",
          "passed": true,
          "observed": 771578
        },
        {
          "id": "bmp_reserved1_zero",
          "passed": true
        },
        {
          "id": "bmp_reserved2_zero",
          "passed": true
        },
        {
          "id": "bmp_bitmapinfoheader_40",
          "passed": true,
          "observed": 40
        },
        {
          "id": "bmp_pixel_offset_54",
          "passed": true,
          "observed": 54
        },
        {
          "id": "bmp_no_gap_after_dib",
          "passed": true
        },
        {
          "id": "bmp_width_641",
          "passed": true,
          "observed": 641
        },
        {
          "id": "bmp_height_401",
          "passed": true,
          "observed": 401
        },
        {
          "id": "bmp_positive_height_bottom_up",
          "passed": true
        },
        {
          "id": "bmp_one_plane",
          "passed": true
        },
        {
          "id": "bmp_24_bits",
          "passed": true
        },
        {
          "id": "bmp_bi_rgb",
          "passed": true
        },
        {
          "id": "bmp_no_alpha_channel_in_24bit_layout",
          "passed": true
        },
        {
          "id": "bmp_no_palette_declared",
          "passed": true
        },
        {
          "id": "bmp_no_important_palette_entries",
          "passed": true
        },
        {
          "id": "bmp_no_palette_bytes",
          "passed": true
        },
        {
          "id": "bmp_x_pixels_per_meter_zero",
          "passed": true
        },
        {
          "id": "bmp_y_pixels_per_meter_zero",
          "passed": true
        },
        {
          "id": "bmp_row_rgb_bytes_1923",
          "passed": true,
          "observed": 1923
        },
        {
          "id": "bmp_row_stride_1924",
          "passed": true,
          "observed": 1924
        },
        {
          "id": "bmp_one_padding_byte",
          "passed": true,
          "observed": 1
        },
        {
          "id": "bmp_declared_image_size_exact",
          "passed": true,
          "observed": 771524
        },
        {
          "id": "bmp_pixel_array_inside_file",
          "passed": true
        },
        {
          "id": "bmp_no_trailing_bytes",
          "passed": true
        },
        {
          "id": "bmp_all_row_padding_zero",
          "passed": true,
          "observed": 401
        },
        {
          "id": "bmp_decoded_rgb_length",
          "passed": true,
          "observed": 771123
        },
        {
          "id": "bmp_bottom_row_stored_first",
          "passed": true
        },
        {
          "id": "bmp_top_row_stored_last",
          "passed": true
        },
        {
          "id": "bmp_no_profile_block_in_this_layout",
          "passed": true
        }
      ]
    },
    "independent_output_validation": {
      "total": 59,
      "passed": 59,
      "failed": 0,
      "checks": [
        {
          "id": "png_signature",
          "passed": true
        },
        {
          "id": "png_chunk_1_IHDR_crc",
          "passed": true
        },
        {
          "id": "png_chunk_2_IDAT_crc",
          "passed": true
        },
        {
          "id": "png_chunk_3_IDAT_crc",
          "passed": true
        },
        {
          "id": "png_chunk_4_IDAT_crc",
          "passed": true
        },
        {
          "id": "png_chunk_5_IDAT_crc",
          "passed": true
        },
        {
          "id": "png_chunk_6_IDAT_crc",
          "passed": true
        },
        {
          "id": "png_chunk_7_IEND_crc",
          "passed": true
        },
        {
          "id": "png_all_chunks_inside_file",
          "passed": true
        },
        {
          "id": "png_no_trailing_bytes",
          "passed": true
        },
        {
          "id": "png_one_ihdr_first",
          "passed": true
        },
        {
          "id": "png_one_iend_last",
          "passed": true
        },
        {
          "id": "png_iend_empty",
          "passed": true
        },
        {
          "id": "png_has_idat",
          "passed": true
        },
        {
          "id": "png_only_supported_critical_chunks",
          "passed": true
        },
        {
          "id": "png_idat_consecutive",
          "passed": true
        },
        {
          "id": "png_ihdr_length_13",
          "passed": true
        },
        {
          "id": "png_dimensions_equal_bmp",
          "passed": true,
          "observed": [
            641,
            401
          ]
        },
        {
          "id": "png_bit_depth_8",
          "passed": true,
          "observed": 8
        },
        {
          "id": "png_true_color_with_alpha_type6",
          "passed": true,
          "observed": 6
        },
        {
          "id": "png_standard_compression",
          "passed": true
        },
        {
          "id": "png_standard_filter_method",
          "passed": true
        },
        {
          "id": "png_not_interlaced",
          "passed": true
        },
        {
          "id": "png_zlib_stream_finished",
          "passed": true
        },
        {
          "id": "png_zlib_no_unused_trailer",
          "passed": true
        },
        {
          "id": "png_zlib_no_unconsumed_tail",
          "passed": true
        },
        {
          "id": "png_inflated_size_exact",
          "passed": true,
          "observed": 1028565
        },
        {
          "id": "png_all_rows_decoded",
          "passed": true,
          "observed": {
            "2": 401
          }
        },
        {
          "id": "png_rgba_size_exact",
          "passed": true,
          "observed": 1028164
        },
        {
          "id": "png_rgb_length_equal_bmp",
          "passed": true
        },
        {
          "id": "png_rgb_exact_every_pixel",
          "passed": true,
          "observed": {
            "mismatching_pixels": 0,
            "mismatching_channels": 0
          }
        },
        {
          "id": "png_alpha_all_255",
          "passed": true,
          "observed": {
            "minimum": 255,
            "maximum": 255
          }
        },
        {
          "id": "png_zero_transparent_or_translucent_pixels",
          "passed": true
        },
        {
          "id": "jpeg_soi",
          "passed": true
        },
        {
          "id": "jpeg_eoi_at_end",
          "passed": true
        },
        {
          "id": "jpeg_segment_and_entropy_structure_complete",
          "passed": true
        },
        {
          "id": "jpeg_one_sof",
          "passed": true,
          "observed": 1
        },
        {
          "id": "jpeg_baseline_sof0",
          "passed": true
        },
        {
          "id": "jpeg_sof_dimensions_equal_bmp",
          "passed": true,
          "observed": [
            641,
            401
          ]
        },
        {
          "id": "jpeg_precision_8",
          "passed": true
        },
        {
          "id": "jpeg_three_components",
          "passed": true
        },
        {
          "id": "jpeg_sof_payload_length",
          "passed": true
        },
        {
          "id": "jpeg_single_jfif",
          "passed": true
        },
        {
          "id": "jpeg_jfif_unit_zero_no_dpi_unit",
          "passed": true,
          "observed": 0
        },
        {
          "id": "jpeg_jfif_density_1_1",
          "passed": true,
          "observed": [
            1,
            1
          ]
        },
        {
          "id": "jpeg_single_icc_app2",
          "passed": true
        },
        {
          "id": "jpeg_icc_sequence_complete",
          "passed": true,
          "observed": [
            [
              1,
              1
            ]
          ]
        },
        {
          "id": "jpeg_icc_app2_payload_470",
          "passed": true,
          "observed": [
            470
          ]
        },
        {
          "id": "jpeg_icc_profile_456",
          "passed": true,
          "observed": 456
        },
        {
          "id": "jpeg_icc_declared_length_exact",
          "passed": true
        },
        {
          "id": "jpeg_icc_profile_signature",
          "passed": true
        },
        {
          "id": "jpeg_no_exif_app1",
          "passed": true
        },
        {
          "id": "jpeg_pillow_format",
          "passed": true
        },
        {
          "id": "jpeg_pillow_dimensions_match_sof",
          "passed": true
        },
        {
          "id": "jpeg_decoded_rgb_length_equal_bmp",
          "passed": true
        },
        {
          "id": "jpeg_top_left_color_remains_at_position",
          "passed": true,
          "observed": {
            "nearest_source_corner": "top_left"
          }
        },
        {
          "id": "jpeg_top_right_color_remains_at_position",
          "passed": true,
          "observed": {
            "nearest_source_corner": "top_right"
          }
        },
        {
          "id": "jpeg_bottom_left_color_remains_at_position",
          "passed": true,
          "observed": {
            "nearest_source_corner": "bottom_left"
          }
        },
        {
          "id": "jpeg_bottom_right_color_remains_at_position",
          "passed": true,
          "observed": {
            "nearest_source_corner": "bottom_right"
          }
        }
      ]
    },
    "upstream_input40": {
      "included_in_output_count": false,
      "note": "The upstream 40-check input validation is separate and was not read or merged into these generated independent counts."
    },
    "bmp": {
      "width": 641,
      "signed_height": 401,
      "storage": "bottom-up BGR",
      "bits_per_pixel": 24,
      "compression": "BI_RGB (0)",
      "dib_header_bytes": 40,
      "pixel_offset": 54,
      "stride_bytes": 1924,
      "padding_bytes_per_row": 1,
      "decoded_rgb_bytes": 771123,
      "decoded_rgb_sha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "alpha_channel": false,
      "pixels_per_meter": [
        0,
        0
      ]
    },
    "png": {
      "width": 641,
      "height": 401,
      "bit_depth": 8,
      "color_type": 6,
      "color_type_name": "RGBA (truecolor with alpha)",
      "interlace": 0,
      "chunks": [
        {
          "type": "IHDR",
          "length": 13,
          "crc_valid": true
        },
        {
          "type": "IDAT",
          "length": 4096,
          "crc_valid": true
        },
        {
          "type": "IDAT",
          "length": 4096,
          "crc_valid": true
        },
        {
          "type": "IDAT",
          "length": 4096,
          "crc_valid": true
        },
        {
          "type": "IDAT",
          "length": 840,
          "crc_valid": true
        },
        {
          "type": "IDAT",
          "length": 6,
          "crc_valid": true
        },
        {
          "type": "IEND",
          "length": 0,
          "crc_valid": true
        }
      ],
      "filter_row_counts": {
        "2": 401
      },
      "inflated_bytes": 1028565,
      "decoded_rgb_sha256": "191b570af298a155112b83077472d67bd215cc0b660820b249a538a587628902",
      "mismatching_rgb_pixels": 0,
      "mismatching_rgb_channels": 0,
      "png_rgb_exact_bmp": true,
      "alpha": {
        "minimum": 255,
        "maximum": 255,
        "opaque_pixels": 257041,
        "nonopaque_pixels": 0
      },
      "interpretation": "This PNG has an alpha channel but all pixels are opaque; conversion did not remove the background."
    },
    "jpeg": {
      "width": 641,
      "height": 401,
      "sof_marker": "0xc0",
      "sample_precision": 8,
      "components": 3,
      "scan_count": 1,
      "restart_marker_count": 0,
      "segments": [
        {
          "marker": "0xe0",
          "payload_bytes": 14
        },
        {
          "marker": "0xe2",
          "payload_bytes": 470
        },
        {
          "marker": "0xdb",
          "payload_bytes": 65
        },
        {
          "marker": "0xdb",
          "payload_bytes": 65
        },
        {
          "marker": "0xc0",
          "payload_bytes": 15
        },
        {
          "marker": "0xc4",
          "payload_bytes": 28
        },
        {
          "marker": "0xc4",
          "payload_bytes": 100
        },
        {
          "marker": "0xc4",
          "payload_bytes": 26
        },
        {
          "marker": "0xc4",
          "payload_bytes": 69
        },
        {
          "marker": "0xda",
          "payload_bytes": 10
        }
      ],
      "jfif": {
        "version": [
          1,
          1
        ],
        "unit": 0,
        "density": [
          1,
          1
        ],
        "interpretation": "Unit 0 is an aspect-ratio density; this does not establish preserved DPI."
      },
      "icc": {
        "app2_payload_bytes": [
          470
        ],
        "profile_bytes": 456,
        "profile_sha256": "12afb4d9953adee0607d347daee5b78b18d6b3cab2d572b88970703f5edb37bc",
        "sequence": [
          [
            1,
            1
          ]
        ]
      },
      "decoded_rgb_sha256": "daff2d0682ae85fa247f3842c5ff85de404b37cd3e5697e66281f7685a6b6669",
      "mismatching_rgb_pixels": 249253,
      "mismatching_rgb_channels": 420662,
      "rgb_mean_absolute_error": 1.5424180059471706,
      "rgb_max_absolute_channel_error": 92,
      "rgb_exact_bmp": false,
      "corner_observations": {
        "top_left": {
          "xy": [
            30,
            30
          ],
          "bmp_rgb": [
            214,
            63,
            69
          ],
          "jpeg_rgb": [
            214,
            63,
            70
          ],
          "absolute_channel_deltas": [
            0,
            0,
            1
          ],
          "nearest_source_corner": "top_left"
        },
        "top_right": {
          "xy": [
            610,
            30
          ],
          "bmp_rgb": [
            35,
            122,
            67
          ],
          "jpeg_rgb": [
            35,
            122,
            67
          ],
          "absolute_channel_deltas": [
            0,
            0,
            0
          ],
          "nearest_source_corner": "top_right"
        },
        "bottom_left": {
          "xy": [
            30,
            370
          ],
          "bmp_rgb": [
            36,
            93,
            202
          ],
          "jpeg_rgb": [
            36,
            92,
            201
          ],
          "absolute_channel_deltas": [
            0,
            1,
            1
          ],
          "nearest_source_corner": "bottom_left"
        },
        "bottom_right": {
          "xy": [
            610,
            370
          ],
          "bmp_rgb": [
            131,
            62,
            178
          ],
          "jpeg_rgb": [
            131,
            62,
            178
          ],
          "absolute_channel_deltas": [
            0,
            0,
            0
          ],
          "nearest_source_corner": "bottom_right"
        }
      },
      "interpretation": "JPEG differences are observed lossy-encoding results, not a failed check and not a lossless claim."
    },
    "size_comparison": {
      "jpeg": {
        "bytes": 37519,
        "ratio_to_bmp": 0.048626321642141174,
        "bytes_less_than_bmp": 734059
      },
      "png": {
        "bytes": 13239,
        "ratio_to_bmp": 0.017158343032071935,
        "bytes_less_than_bmp": 758339
      }
    },
    "scope": "One self-authored 641x401, 24-bit BI_RGB bottom-up BMP and the two supplied native output files only. No claims about indexed/RLE/bitfields/32-bit BMP, alpha inputs, batch conversion, or DPI preservation.",
    "passed": true,
    "path_scan": {
      "absolute_path_count": 0,
      "passed": true,
      "evidence_names": "basenames only"
    }
  },
  "nativeResultVerification": {
    "stage": "actual_native_BMP_to_JPEG_and_PNG_analysis",
    "checkedAt": "2026-10-17 Asia/Shanghai",
    "nativeRawBytesUnmodified": true,
    "files": [
      {
        "file": "synthetic-bitmap.bmp",
        "bytes": 771578,
        "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6"
      },
      {
        "file": "jpeg-native.jpg",
        "bytes": 37519,
        "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5"
      },
      {
        "file": "png-native.png",
        "bytes": 13239,
        "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832"
      },
      {
        "file": "jpeg-settings.jpg",
        "bytes": 82039,
        "sha256": "ecbd1b13f34246a3a1854b91cc89660752d499889d26fe5312d4f2a6de478c3c"
      },
      {
        "file": "png-settings.jpg",
        "bytes": 82606,
        "sha256": "0e3badf56adfa3e5ca8697ba7773b0df7d484db0dcb1ca6b69c2153870c9141b"
      },
      {
        "file": "product-run-receipt.json",
        "bytes": 1213,
        "sha256": "6d3c84f01ea5e3c6e9edbe951139c6a57d96b3ec4839a9f691dcb43171831a6c"
      }
    ],
    "reportBindings": [
      {
        "role": "primary_output_readback",
        "file": "output-checks.json",
        "bytes": 21341,
        "sha256": "b1af4bb27f651e6cef76268fa34b09d73c571978247bf8030adab8bddb767db4"
      },
      {
        "role": "independent_output_readback",
        "file": "independent-output-checks.json",
        "bytes": 15603,
        "sha256": "8a25790ea183f296be52cddb9b8d0e39f0f80bc6ef9744648dc6c5460dcd1d04"
      },
      {
        "role": "input_preparation_only",
        "file": "input-only-checks.json",
        "bytes": 6350,
        "sha256": "961cf5ef3d434638c28a138a08c1fae6d1f5351d86204a360fe0130b0c95f14b"
      },
      {
        "role": "product_operations_receipt",
        "file": "product-run-receipt.json",
        "bytes": 1213,
        "sha256": "6d3c84f01ea5e3c6e9edbe951139c6a57d96b3ec4839a9f691dcb43171831a6c"
      },
      {
        "role": "independent_checker",
        "file": "verify_bmp_outputs_independent.py",
        "bytes": 21643,
        "sha256": "d91ac99efdb922390000bef5aabe997c6e4fa6a047d95b1566776176fef43763"
      },
      {
        "role": "primary_analyzer",
        "file": "analyze_bmp_outputs.py",
        "bytes": 18116,
        "sha256": "cdfc0b4a08210a49cc82a28ef983c43186bb6f2ccf1540e9e5fefbc3508866f5"
      }
    ],
    "inputPreparationVerification": {
      "checks": 40,
      "passed": 40,
      "failed": 0
    },
    "primaryOutputVerification": {
      "checks": 56,
      "passed": 56,
      "failed": 0,
      "includesIndependentOutputChecks": false,
      "includesInputPreparationChecks": false
    },
    "independentOutputVerification": {
      "total": 59,
      "passed": 59,
      "failed": 0
    },
    "independentBMPParserVerification": {
      "total": 30,
      "passed": 30,
      "failed": 0
    },
    "verificationCountsKeptSeparate": true,
    "png": {
      "file": "png-native.png",
      "bytes": 13239,
      "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832",
      "width": 641,
      "height": 401,
      "mode": "RGBA",
      "completeRGBEqualsInput": true,
      "alpha": {
        "pixels": 257041,
        "fullyOpaquePixels": 257041,
        "fullyTransparentPixels": 0,
        "partiallyTransparentPixels": 0,
        "minimum": 255,
        "maximum": 255
      }
    },
    "jpeg": {
      "file": "jpeg-native.jpg",
      "bytes": 37519,
      "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5",
      "width": 641,
      "height": 401,
      "mode": "RGB",
      "pixelDifference": {
        "pixels": 257041,
        "changedPixels": 249253,
        "changedChannels": 420662,
        "absoluteErrorSum": 1189394,
        "meanAbsoluteErrorPerChannel": 1.5424180059471706,
        "maxAbsoluteErrorPerChannel": 92,
        "comparisonMeaning": "Decoded numeric RGB difference for this input and output; not a perceptual quality score or proof of color-management equivalence"
      }
    },
    "jpegMetadata": {
      "ICCProfileBytes": 456,
      "APP2PayloadBytes": 470,
      "JFIFDensityUnit": 0,
      "JFIFDensityRatio": [
        1,
        1
      ],
      "physicalDPIClaim": false,
      "inputHadICC": false,
      "description": "JPEG output contains ICC; it was not preserved from this profile-free BMP"
    },
    "actualOperations": {
      "fixtureUploads": 1,
      "inputFiles": 1,
      "inputFile": "synthetic-bitmap.bmp",
      "fileInputAccept": "image/*",
      "conversionRuns": 2,
      "outputFormats": [
        "JPEG",
        "PNG"
      ],
      "singleImageDownloads": 2,
      "nativeZipDownloads": 0,
      "keepExif": true,
      "originalOutputFormatRestoredJpegWithoutThirdRun": true,
      "ownToolTabClosedAfterReceipt": true
    },
    "screenshotsArePreRunSettings": true,
    "limits": [
      "Only this self-authored 641x401, 24-bit BI_RGB bottom-up BMP and these two actual downloads were tested",
      "PNG RGBA has alpha 255 everywhere because the input is wholly opaque; this is not automatic background removal",
      "JPEG numeric changes are observed re-encoding differences, not failure of an exact-match promise",
      "No inference about arbitrary BMP, 32-bit alpha, indexed palette, RLE, bitfields, top-down files, batch, browser variation or physical DPI",
      "Keep EXIF true on an input with no EXIF does not prove metadata-preservation capability",
      "Output sizes describe only these files; no universal compression or color-equivalence guarantee",
      "JPEG output contains a 456-byte embedded ICC profile in a 470-byte APP2 payload and JFIF unit 0 ratio 1x1; unit 0 is not a physical DPI setting",
      "Native ZIP downloads 0; any future proof ZIP is locally assembled"
    ],
    "allPassed": true,
    "pathScan": {
      "absoluteLocalPathCount": 0,
      "passed": true,
      "evidenceNames": "basenames only"
    }
  },
  "actualOperations": {
    "fixtureUploads": 1,
    "inputFiles": 1,
    "inputFile": "synthetic-bitmap.bmp",
    "fileInputAccept": "image/*",
    "conversionRuns": 2,
    "outputFormats": [
      "JPEG",
      "PNG"
    ],
    "singleImageDownloads": 2,
    "nativeZipDownloads": 0,
    "keepExif": true,
    "initialSettings": "图片格式转换工具\n\n支持多种图片格式转换，批量处理\n\n开始转换\n文件列表 (1)\nsynthetic-bitmap.bmp\n原始大小: 753.49 KB\n\n点击或拖拽添加更多图片文件\n\n最多支持20个文件\n\n转换设置\n输出格式\nJPEG\n元数据\n保留 EXIF 信息\n操作\n下载全部\n清空队列\nHEIC 转换提示\n\n目前暂不支持直接在浏览器中将 HEIC 格式转换为 JPG。 建议您在本地操作系统（如 macOS 或 iOS）中先行转换，或使用其他桌面工具进行转换。",
    "downloadButtonsClickedOncePerOutput": true,
    "downloadEventsObserved": false,
    "uniqueFreshOwnDownloadsVerified": true,
    "originalOutputFormatRestoredJpegWithoutThirdRun": true,
    "ownToolTabClosedAfterReceipt": true,
    "limits": "One self-authored24bit BI_RGB bottom-up BMP only; no32bit alpha, indexed palette, RLE, bitfields, multi-browser, arbitrary BMP or batch ZIP validation."
  },
  "screenshotsArePreRunSettings": true,
  "marketEvidence": {
    "checkedAt": "2026-10-17 Asia/Shanghai",
    "seed": "bmp转jpg",
    "selectedDuration": "3M",
    "dateBounds": [
      "2026-07-17",
      "2026-10-14"
    ],
    "scope": "All countries/languages/devices",
    "seedMarketImpressionsDisplayed": "938",
    "exportRows": 10,
    "exportSha256": "d4e19aed1968f54cc16a18a4732c149dbf01ce024a0ae73e83e467a9560af9d3",
    "matchingForwardRows": [
      {
        "Keyword": "bmp to jpg",
        "Trends": "[216,183,169,177,150,175,173,196,223,199,162,196]",
        "Impressions": "2219"
      }
    ],
    "unsupportedReverseRows": [
      {
        "Keyword": "jpg转bmp",
        "Trends": "[83,71,79,74,73,65,93,89,69,59,53,59]",
        "Impressions": "867"
      },
      {
        "Keyword": "png转bmp",
        "Trends": "[171,200,154,148,135,145,128,172,159,113,124,104]",
        "Impressions": "1753"
      }
    ],
    "limits": [
      "Market impressions are not monthly search volume, live rank or site traffic.",
      "JPG/PNG to BMP are inverse tasks and not assigned to the verified BMP-input workflow.",
      "The earlier research-stage support flag is not current state; actual result receipt is separately recorded."
    ]
  },
  "sourceHashes": [
    {
      "file": "synthetic-bitmap.bmp",
      "bytes": 771578,
      "sha256": "00bb63d145385ec1e8168a33a630e13dd19b90f082d5fcafe0341cf0c63021d6"
    },
    {
      "file": "jpeg-native.jpg",
      "bytes": 37519,
      "sha256": "ffd680084fd6bc8269d15630b9d1ad18bc7a24438fce6df27babe68f178c1ea5"
    },
    {
      "file": "png-native.png",
      "bytes": 13239,
      "sha256": "a0b12a1e0a80222a57b0dce21635214fe086703739ddaa74baaae7877acd7832"
    },
    {
      "file": "jpeg-settings.jpg",
      "bytes": 82039,
      "sha256": "ecbd1b13f34246a3a1854b91cc89660752d499889d26fe5312d4f2a6de478c3c"
    },
    {
      "file": "png-settings.jpg",
      "bytes": 82606,
      "sha256": "0e3badf56adfa3e5ca8697ba7773b0df7d484db0dcb1ca6b69c2153870c9141b"
    }
  ],
  "sourceReportHashes": [
    {
      "file": "fixture-manifest.json",
      "sha256": "6e745aed13f937c798ad401cb431d5a04d03d501d8f9c338247b26380a1ac532"
    },
    {
      "file": "input-only-checks.json",
      "sha256": "961cf5ef3d434638c28a138a08c1fae6d1f5351d86204a360fe0130b0c95f14b"
    },
    {
      "file": "output-checks.json",
      "sha256": "b1af4bb27f651e6cef76268fa34b09d73c571978247bf8030adab8bddb767db4"
    },
    {
      "file": "independent-output-checks.json",
      "sha256": "8a25790ea183f296be52cddb9b8d0e39f0f80bc6ef9744648dc6c5460dcd1d04"
    },
    {
      "file": "native-result-verification.json",
      "sha256": "5f26a28314552ac9f6b40b6d308e9447e45de2d2b6493e913ffc40f8826a854c"
    },
    {
      "file": "product-run-receipt.json",
      "sha256": "6d3c84f01ea5e3c6e9edbe951139c6a57d96b3ec4839a9f691dcb43171831a6c"
    },
    {
      "file": "keyword-research-review.json",
      "sha256": "1597a9b146e03f8ce086e7fb750b06993032b249364cb06e1f170c3637dce4cf"
    },
    {
      "file": "keyword-research-export.csv",
      "sha256": "d4e19aed1968f54cc16a18a4732c149dbf01ce024a0ae73e83e467a9560af9d3"
    }
  ],
  "newBrowserOrProductRunsForPackaging": 0,
  "comparisonScope": "Local decoding of actual BMP and the two native outputs only. No pre-run screenshot or input preview is presented as a completed product result.",
  "limits": [
    "Only this self-authored 641x401, 24-bit BI_RGB bottom-up BMP and these two actual downloads were tested",
    "PNG RGBA has alpha 255 everywhere because the input is wholly opaque; this is not automatic background removal",
    "JPEG numeric changes are observed re-encoding differences, not failure of an exact-match promise",
    "No inference about arbitrary BMP, 32-bit alpha, indexed palette, RLE, bitfields, top-down files, batch, browser variation or physical DPI",
    "Keep EXIF true on an input with no EXIF does not prove metadata-preservation capability",
    "Output sizes describe only these files; no universal compression or color-equivalence guarantee",
    "JPEG output contains a 456-byte embedded ICC profile in a 470-byte APP2 payload and JFIF unit 0 ratio 1x1; unit 0 is not a physical DPI setting",
    "Native ZIP downloads 0; any future proof ZIP is locally assembled"
  ]
}
