{
  "date": "2026-10-24",
  "source": "double-exposure-portrait.png",
  "provenance": "Original OpenAI generated source previously published in the double exposure guide reused here not a camera photo or Clout output",
  "resize": "Sharp 0.34.5 Lanczos3 to 1200 by 800 flatten on white",
  "toneWeights": [2126, 7152, 722],
  "toneDivisor": 10000,
  "convention": "RGB byte weights without linearization and integer half up interpolation",
  "cases": [
    {
      "name": "warm-gradient",
      "shadow": "#10243a",
      "highlight": "#ffd9b8",
      "mode": "gradient",
      "threshold": null,
      "uniqueRGBColors": 522,
      "width": 1200,
      "height": 800
    },
    {
      "name": "warm-threshold",
      "shadow": "#10243a",
      "highlight": "#ffd9b8",
      "mode": "threshold",
      "threshold": 128,
      "uniqueRGBColors": 2,
      "width": 1200,
      "height": 800
    },
    {
      "name": "teal-gradient",
      "shadow": "#11223f",
      "highlight": "#70f0dc",
      "mode": "gradient",
      "threshold": null,
      "uniqueRGBColors": 438,
      "width": 1200,
      "height": 800
    }
  ],
  "reproduce": "Run this builder with Bun Sharp 0.34.5 and Biome 2.2.2 beside duotone.ts and the original source PNG; browser decoded samples can differ from Sharp resizing"
}
