{
  "title": "Duotone image maker",
  "human_url": "https://happytails.ai/en/image-tools/duotone-image-maker/",
  "agent_url": "https://happytails.ai/agents/en/image-tools/duotone-image-maker/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/image-tools/duotone-image-maker.md",
  "content": "Duotone image maker\nMap your image to two chosen colors while keeping transparency. Download the full-resolution result.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Duotone image maker\nChoose a still image.\nChoose the dark and light ink colors.\nRun the tool, compare the original and result, and download your PNG.\nUseful next steps\nImage to ASCII art\nReplace image color\nTwo colors, one brightness scale\nDark pixels move toward the dark ink and bright pixels toward the light ink. The blend uses encoded RGB luminance, not a print separation or color-managed process.\nKeep the transparent areas\nThe output preserves decoded alpha values. RGB output bytes are encoded directly to avoid canvas export rounding.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Image to ASCII art",
      "url": "https://happytails.ai/en/image-tools/image-to-ascii-art/"
    },
    {
      "name": "Replace image color",
      "url": "https://happytails.ai/en/image-tools/image-color-replacement/"
    }
  ],
  "tool": {
    "id": "duotone-image-maker",
    "category": "image-tools",
    "built": true,
    "requirements": "Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.",
    "implementation": {
      "fields": [
        {
          "key": "dark",
          "label": "Dark ink",
          "value": "#000000",
          "type": "color"
        },
        {
          "key": "light",
          "label": "Light ink",
          "value": "#ffffff",
          "type": "color"
        }
      ],
      "registrationFamily": "raster-image-studio",
      "files": true,
      "input": false,
      "multiple": false,
      "accept": ".png,.jpg,.jpeg,.webp",
      "maxFileBytes": 20971520,
      "deferImagePreview": true,
      "note": "Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Up to 1,000,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Duotone image maker\n\n- Human page: https://happytails.ai/en/image-tools/duotone-image-maker/\n- Markdown: https://happytails.ai/en/image-tools/duotone-image-maker.md\n- Structured JSON: https://happytails.ai/agents/en/image-tools/duotone-image-maker/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `duotone-image-maker` |\n| Category | image-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nFiles stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\nAccepted browser files: `.png,.jpg,.jpeg,.webp`. Choose one file.\n\nBrowser file-input limit: 20971520 bytes in total. HTTP limits can differ.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `dark` | Dark ink | color | \"#000000\" |  |\n| `light` | Light ink | color | \"#ffffff\" |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nFiles stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"duotone-image-maker\",\n  \"category\": \"image-tools\",\n  \"built\": true,\n  \"requirements\": \"Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"dark\",\n        \"label\": \"Dark ink\",\n        \"value\": \"#000000\",\n        \"type\": \"color\"\n      },\n      {\n        \"key\": \"light\",\n        \"label\": \"Light ink\",\n        \"value\": \"#ffffff\",\n        \"type\": \"color\"\n      }\n    ],\n    \"registrationFamily\": \"raster-image-studio\",\n    \"files\": true,\n    \"input\": false,\n    \"multiple\": false,\n    \"accept\": \".png,.jpg,.jpeg,.webp\",\n    \"maxFileBytes\": 20971520,\n    \"deferImagePreview\": true,\n    \"note\": \"Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nMap your image to two chosen colors while keeping transparency. Download the full-resolution result.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Duotone image maker\n\n1. Choose a still image.\n2. Choose the dark and light ink colors.\n3. Run the tool, compare the original and result, and download your PNG.\n\n## Useful next steps\n\n- [Image to ASCII art](https://happytails.ai/en/image-tools/image-to-ascii-art/) ([Markdown](https://happytails.ai/en/image-tools/image-to-ascii-art.md))\n\n- [Replace image color](https://happytails.ai/en/image-tools/image-color-replacement/) ([Markdown](https://happytails.ai/en/image-tools/image-color-replacement.md))\n\n## Two colors, one brightness scale\n\nDark pixels move toward the dark ink and bright pixels toward the light ink. The blend uses encoded RGB luminance, not a print separation or color-managed process.\n\n### Keep the transparent areas\n\nThe output preserves decoded alpha values. RGB output bytes are encoded directly to avoid canvas export rounding.\n"
}