{
  "numerator": 203,
  "denominator": 615,
  "percent": 33.00813008130081,
  "counting_rule": "English article paragraphs and headings; word regex \\b[\\w]+(?:[\u2019'-][\\w]+)*\\b. Excludes result table, commands, download labels, navigation, image labels, footer. General guidance and prior entry-order observation excluded; numerator only paragraphs tied to new saved conversion outputs. Includes the table instruction paragraph as nonexclusive prose.",
  "comparison_scope": "Archived actually read CloudConvert ico-to-png, Convertio ico-png, ConvertICO ico-to-png page bodies (competitor-1,3,9); not a whole-web absence or current-rank assertion. Previously published entry-order local experiment also checked.",
  "paragraphs": [
    {
      "id": "answer",
      "exclusive": false,
      "words": 36,
      "text": "Convert an ICO to PNG by saving the image layer you need: Pillow and FFmpeg both preserved the default layer in these tests, while an explicit Pillow selection exported the smaller embedded image without resizing it.",
      "evidence": "not counted"
    },
    {
      "id": "scope",
      "exclusive": false,
      "words": 36,
      "text": "Measured November 2, 2026 on Windows with Python 3.12.14, Pillow 12.3.0 and FFmpeg N-126374-g089a48eb36-20260831. These are local command-line conversions of three deliberately constructed ICO files, not tests of online converters or browsers.",
      "evidence": "not counted"
    },
    {
      "id": "default-bytes",
      "exclusive": true,
      "words": 49,
      "text": "For the ascending-order ICO, Pillow default export produced a 621-byte PNG and FFmpeg default export produced a 902-byte PNG. Both were 256 by 256 pixels. Their complete file checksums differed, but the decoded RGBA checksums matched. The larger download did not contain a different pixel image in this pair.",
      "evidence": "local-conversion-benchmark/results.json outputs and commands"
    },
    {
      "id": "reverse-bytes",
      "exclusive": true,
      "words": 52,
      "text": "The descending-order ICO produced the same 621-byte Pillow output and the same 902-byte FFmpeg output as its ascending counterpart. Each route reproduced its own output checksum across the reversed pair. In these files, reversing the directory did not make either default route export the first small image instead of the large one.",
      "evidence": "local-conversion-benchmark/results.json outputs and commands"
    },
    {
      "id": "single-bytes",
      "exclusive": true,
      "words": 49,
      "text": "The single-layer control changed the comparison: Pillow wrote 125 bytes and FFmpeg wrote 148 bytes, both at 32 by 32 pixels. Their PNG checksums still differed, while their decoded RGBA checksums were identical. This control separates a difference in saved PNG bytes from a difference in selected image dimensions.",
      "evidence": "local-conversion-benchmark/results.json outputs and commands"
    },
    {
      "id": "selected-layer",
      "exclusive": false,
      "words": 57,
      "text": "Explicit Pillow selection returned a 125-byte, 32 by 32 PNG from each of the three inputs. All three selected outputs shared the same full PNG checksum. Against the default 256 by 256 outputs from the two multiresolution inputs, these selected results had a different center color because they came from a different embedded layer, not a downscale.",
      "evidence": "Excluded conservatively: substantial overlap with existing local layer-selection material"
    },
    {
      "id": "alpha",
      "exclusive": true,
      "words": 53,
      "text": "All nine exports retained an alpha channel. The default large outputs had 49152 fully transparent pixels and 16384 semitransparent pixels; every small output had 768 fully transparent pixels and 256 semitransparent pixels. None had an opaque pixel. Each export had zero differing RGBA pixels against its matching input layer, including that layer\u2019s edges.",
      "evidence": "local-conversion-benchmark/results.json outputs and commands"
    },
    {
      "id": "what-blur-means",
      "exclusive": false,
      "words": 43,
      "text": "Here, unchanged edges means a complete pixel comparison found no changes at the selected native size. It does not mean every possible icon will behave identically. No browser rendering, visual scaling, bitmap-backed ICO, legacy transparency mask, conversion speed or service quota was tested.",
      "evidence": "not counted"
    },
    {
      "id": "choose",
      "exclusive": false,
      "words": 50,
      "text": "Use the default export only when its reported dimensions are the dimensions you want. Choose an embedded size explicitly when you need that layer. Compare decoded pixels when checking image fidelity; retain the complete file checksum when checking whether two downloads are the same file. These checks answer different questions.",
      "evidence": "not counted"
    },
    {
      "id": "reproduce",
      "exclusive": false,
      "words": 49,
      "text": "Download the three inputs and the reproduction script together with the fixed-input manifest. The script verifies each input checksum before conversion, saves separate outputs, and records the exact FFmpeg command and its diagnostic output. Run it with Python, Pillow and FFmpeg installed; it does not contact an online converter.",
      "evidence": "not counted"
    },
    {
      "id": "relation",
      "exclusive": false,
      "words": 39,
      "text": "For the reverse operation, see the measured PNG to ICO comparison. The separate ICO entry-order experiment explains how the two multiresolution inputs were constructed; this page adds a second conversion tool, saved PNG byte comparisons, and the single-layer control.",
      "evidence": "not counted"
    },
    {
      "id": "limit",
      "exclusive": false,
      "words": 51,
      "text": "The conclusions apply only to the downloadable fixtures, recorded commands and software versions. A smaller output file alone is not evidence of a sharper image. A smaller selected layer is not evidence that a converter destroyed the larger one. Keep the original ICO if you need the other embedded sizes later.",
      "evidence": "not counted"
    }
  ]
}