Heart image: Pixel-to-Crochet Chart Converter

Inspect a coarse heart silhouette

This original sixteen-by-fourteen raster draws a heart with a mathematical outline and two flat colors. It is a code-drawn teaching illustration with two recorded color regions. The design question is how faithfully conversion retains the actual coarse outline, including its lower point and broad upper edge. At this native resolution, the source has no cream cleft separating two upper lobes. The complete rectangle, including the cream background, becomes worked fabric.

Check a color budget rather than an index number

The source has 118 red pixels and 106 cream pixels, totaling 224. The converter's first palette slot is red because it is the larger region; the original source drawing listed cream first. That reordering is valid. Compare the actual color assigned to every coordinate rather than assuming that source color zero must remain output color zero. At this native resolution and two-color limit, neither original color needs to be merged.

Check the upper edge and the point

Before crocheting, inspect the contiguous red run near the upper edge and the narrow lower point. The blank top row does not form a cleft inside that run. If two visibly separated upper lobes are essential, design a revised source with an explicit light notch and verify its new pixel budget. Keep a copy of the exact original PNG and exported JSON. If you try a smaller conversion, compare the actual upper run and lower point directly with the original rather than assuming that a smaller result preserves every feature.

Interpret a rectangle in actual yarn

The saved graph is sixteen stitches wide and fourteen rows high. Single crochet is not necessarily square, so the physical heart may be stretched compared with the screen's square pixels. Make the small carried-yarn panel, finish it as planned and measure stitch and row gauge separately. Do not add stitches within a red cell to round the outline; a cell already represents one complete stitch position.

Questions and practical repairs

Why did the yarn numbers change?

Palette order follows quantization, not the drawing author's preferred list. The exact red and cream regions should remain unchanged.

Can I skip the cream background?

No. It is worked cream fabric, not open mesh. Missing cells would alter both width and connectivity.

Why is the point at the top?

Check whether you pasted top-first source rows into a bottom-origin saved grid. Use the provided JSON or upload the PNG through the converter instead.

Download the source and reproduce the conversion

Download the original PNG input. This code-drawn illustration is shown enlarged with crisp pixels below; it is not documentary photography.

Original heart image pixel illustration used as the exact converter input

In the Pixel-to-Crochet Chart Converter, set 16 columns, 14 rows and a maximum of 2 colors before choosing the PNG file. Conversion occurs locally. Use Reprocess source image after changing resolution or the color limit. The exact native source uses 2 output palette slots: yarn 1 #b83e5d (118 stitches); yarn 2 #f4e8d2 (106 stitches).

Download the exact converted project JSON for restoration and comparison. The saved grid uses the lower-left origin. Preserve it before trying another image or palette; a resized or reduced version is a separate design.

Work the actual counted fabric

Use compatible smooth yarns and a suitable trial hook. Chain 17 and work 16 US single crochets from the second chain. Later rows use one uncounted turning chain and alternate working direction. Change color on the final pull-through before the next yarn. In UK terminology these single crochets are double crochets. Follow every row below, then fasten off and weave ends. Measure a washed sample for physical dimensions and material consumption; the pixel budget excludes carries, tails, seams and any later border. See the chart-reading guide for matching the symbols to the written route.

Symbol Chart · one US sc per cellBottom-origin chart. Alternate row directions. Each completed row contains 16 stitches.Color changes occur on the final pull-through before the next yarn; use the full written color order.Row 1 ← · 16 stsRow 1, column 1: sc, yarn 22Row 1, column 2: sc, yarn 22Row 1, column 3: sc, yarn 22Row 1, column 4: sc, yarn 22Row 1, column 5: sc, yarn 22Row 1, column 6: sc, yarn 22Row 1, column 7: sc, yarn 22Row 1, column 8: sc, yarn 22Row 1, column 9: sc, yarn 22Row 1, column 10: sc, yarn 22Row 1, column 11: sc, yarn 22Row 1, column 12: sc, yarn 22Row 1, column 13: sc, yarn 22Row 1, column 14: sc, yarn 22Row 1, column 15: sc, yarn 22Row 1, column 16: sc, yarn 22ch 1Row 2 → · 16 stsRow 2, column 1: sc, yarn 22Row 2, column 2: sc, yarn 22Row 2, column 3: sc, yarn 22Row 2, column 4: sc, yarn 22Row 2, column 5: sc, yarn 22Row 2, column 6: sc, yarn 22Row 2, column 7: sc, yarn 22Row 2, column 8: sc, yarn 22Row 2, column 9: sc, yarn 22Row 2, column 10: sc, yarn 22Row 2, column 11: sc, yarn 22Row 2, column 12: sc, yarn 22Row 2, column 13: sc, yarn 22Row 2, column 14: sc, yarn 22Row 2, column 15: sc, yarn 22Row 2, column 16: sc, yarn 22ch 1Row 3 ← · 16 stsRow 3, column 1: sc, yarn 22Row 3, column 2: sc, yarn 22Row 3, column 3: sc, yarn 22Row 3, column 4: sc, yarn 22Row 3, column 5: sc, yarn 22Row 3, column 6: sc, yarn 22Row 3, column 7: sc, yarn 11Row 3, column 8: sc, yarn 11Row 3, column 9: sc, yarn 11Row 3, column 10: sc, yarn 11Row 3, column 11: sc, yarn 22Row 3, column 12: sc, yarn 22Row 3, column 13: sc, yarn 22Row 3, column 14: sc, yarn 22Row 3, column 15: sc, yarn 22Row 3, column 16: sc, yarn 22ch 1Row 4 → · 16 stsRow 4, column 1: sc, yarn 22Row 4, column 2: sc, yarn 22Row 4, column 3: sc, yarn 22Row 4, column 4: sc, yarn 22Row 4, column 5: sc, yarn 22Row 4, column 6: sc, yarn 11Row 4, column 7: sc, yarn 11Row 4, column 8: sc, yarn 11Row 4, column 9: sc, yarn 11Row 4, column 10: sc, yarn 11Row 4, column 11: sc, yarn 11Row 4, column 12: sc, yarn 22Row 4, column 13: sc, yarn 22Row 4, column 14: sc, yarn 22Row 4, column 15: sc, yarn 22Row 4, column 16: sc, yarn 22ch 1Row 5 ← · 16 stsRow 5, column 1: sc, yarn 22Row 5, column 2: sc, yarn 22Row 5, column 3: sc, yarn 22Row 5, column 4: sc, yarn 11Row 5, column 5: sc, yarn 11Row 5, column 6: sc, yarn 11Row 5, column 7: sc, yarn 11Row 5, column 8: sc, yarn 11Row 5, column 9: sc, yarn 11Row 5, column 10: sc, yarn 11Row 5, column 11: sc, yarn 11Row 5, column 12: sc, yarn 11Row 5, column 13: sc, yarn 11Row 5, column 14: sc, yarn 22Row 5, column 15: sc, yarn 22Row 5, column 16: sc, yarn 22ch 1Row 6 → · 16 stsRow 6, column 1: sc, yarn 22Row 6, column 2: sc, yarn 22Row 6, column 3: sc, yarn 22Row 6, column 4: sc, yarn 11Row 6, column 5: sc, yarn 11Row 6, column 6: sc, yarn 11Row 6, column 7: sc, yarn 11Row 6, column 8: sc, yarn 11Row 6, column 9: sc, yarn 11Row 6, column 10: sc, yarn 11Row 6, column 11: sc, yarn 11Row 6, column 12: sc, yarn 11Row 6, column 13: sc, yarn 11Row 6, column 14: sc, yarn 22Row 6, column 15: sc, yarn 22Row 6, column 16: sc, yarn 22ch 1Row 7 ← · 16 stsRow 7, column 1: sc, yarn 22Row 7, column 2: sc, yarn 22Row 7, column 3: sc, yarn 11Row 7, column 4: sc, yarn 11Row 7, column 5: sc, yarn 11Row 7, column 6: sc, yarn 11Row 7, column 7: sc, yarn 11Row 7, column 8: sc, yarn 11Row 7, column 9: sc, yarn 11Row 7, column 10: sc, yarn 11Row 7, column 11: sc, yarn 11Row 7, column 12: sc, yarn 11Row 7, column 13: sc, yarn 11Row 7, column 14: sc, yarn 11Row 7, column 15: sc, yarn 22Row 7, column 16: sc, yarn 22ch 1Row 8 → · 16 stsRow 8, column 1: sc, yarn 22Row 8, column 2: sc, yarn 22Row 8, column 3: sc, yarn 11Row 8, column 4: sc, yarn 11Row 8, column 5: sc, yarn 11Row 8, column 6: sc, yarn 11Row 8, column 7: sc, yarn 11Row 8, column 8: sc, yarn 11Row 8, column 9: sc, yarn 11Row 8, column 10: sc, yarn 11Row 8, column 11: sc, yarn 11Row 8, column 12: sc, yarn 11Row 8, column 13: sc, yarn 11Row 8, column 14: sc, yarn 11Row 8, column 15: sc, yarn 22Row 8, column 16: sc, yarn 22ch 1Row 9 ← · 16 stsRow 9, column 1: sc, yarn 22Row 9, column 2: sc, yarn 11Row 9, column 3: sc, yarn 11Row 9, column 4: sc, yarn 11Row 9, column 5: sc, yarn 11Row 9, column 6: sc, yarn 11Row 9, column 7: sc, yarn 11Row 9, column 8: sc, yarn 11Row 9, column 9: sc, yarn 11Row 9, column 10: sc, yarn 11Row 9, column 11: sc, yarn 11Row 9, column 12: sc, yarn 11Row 9, column 13: sc, yarn 11Row 9, column 14: sc, yarn 11Row 9, column 15: sc, yarn 11Row 9, column 16: sc, yarn 22ch 1Row 10 → · 16 stsRow 10, column 1: sc, yarn 22Row 10, column 2: sc, yarn 11Row 10, column 3: sc, yarn 11Row 10, column 4: sc, yarn 11Row 10, column 5: sc, yarn 11Row 10, column 6: sc, yarn 11Row 10, column 7: sc, yarn 11Row 10, column 8: sc, yarn 11Row 10, column 9: sc, yarn 11Row 10, column 10: sc, yarn 11Row 10, column 11: sc, yarn 11Row 10, column 12: sc, yarn 11Row 10, column 13: sc, yarn 11Row 10, column 14: sc, yarn 11Row 10, column 15: sc, yarn 11Row 10, column 16: sc, yarn 22ch 1Row 11 ← · 16 stsRow 11, column 1: sc, yarn 22Row 11, column 2: sc, yarn 11Row 11, column 3: sc, yarn 11Row 11, column 4: sc, yarn 11Row 11, column 5: sc, yarn 11Row 11, column 6: sc, yarn 11Row 11, column 7: sc, yarn 11Row 11, column 8: sc, yarn 11Row 11, column 9: sc, yarn 11Row 11, column 10: sc, yarn 11Row 11, column 11: sc, yarn 11Row 11, column 12: sc, yarn 11Row 11, column 13: sc, yarn 11Row 11, column 14: sc, yarn 11Row 11, column 15: sc, yarn 11Row 11, column 16: sc, yarn 22ch 1Row 12 → · 16 stsRow 12, column 1: sc, yarn 22Row 12, column 2: sc, yarn 22Row 12, column 3: sc, yarn 11Row 12, column 4: sc, yarn 11Row 12, column 5: sc, yarn 11Row 12, column 6: sc, yarn 11Row 12, column 7: sc, yarn 11Row 12, column 8: sc, yarn 11Row 12, column 9: sc, yarn 11Row 12, column 10: sc, yarn 11Row 12, column 11: sc, yarn 11Row 12, column 12: sc, yarn 11Row 12, column 13: sc, yarn 11Row 12, column 14: sc, yarn 11Row 12, column 15: sc, yarn 22Row 12, column 16: sc, yarn 22ch 1Row 13 ← · 16 stsRow 13, column 1: sc, yarn 22Row 13, column 2: sc, yarn 22Row 13, column 3: sc, yarn 22Row 13, column 4: sc, yarn 11Row 13, column 5: sc, yarn 11Row 13, column 6: sc, yarn 11Row 13, column 7: sc, yarn 11Row 13, column 8: sc, yarn 11Row 13, column 9: sc, yarn 11Row 13, column 10: sc, yarn 11Row 13, column 11: sc, yarn 11Row 13, column 12: sc, yarn 11Row 13, column 13: sc, yarn 11Row 13, column 14: sc, yarn 22Row 13, column 15: sc, yarn 22Row 13, column 16: sc, yarn 22ch 1Row 14 → · 16 stsRow 14, column 1: sc, yarn 22Row 14, column 2: sc, yarn 22Row 14, column 3: sc, yarn 22Row 14, column 4: sc, yarn 22Row 14, column 5: sc, yarn 22Row 14, column 6: sc, yarn 22Row 14, column 7: sc, yarn 22Row 14, column 8: sc, yarn 22Row 14, column 9: sc, yarn 22Row 14, column 10: sc, yarn 22Row 14, column 11: sc, yarn 22Row 14, column 12: sc, yarn 22Row 14, column 13: sc, yarn 22Row 14, column 14: sc, yarn 22Row 14, column 15: sc, yarn 22Row 14, column 16: sc, yarn 22ch 1FoundationSTART: chain 17. Begin in second chain from hook at right; work 16 stitches left.Turning chain: ch 1, excluded from stitch count. No increases or decreases in this rectangle.END: Row 14, right edge. Fasten off and weave ends; border and seams are separate.× = US sc / UK dc; oval = chain. Blue box = first stitch per row; dashed brown box = final stitch.Yarn 1: #b83e5dYarn 2: #f4e8d2Working order · USSTART Row 1 ← · 16 stsRow 2 → · 16 stsRow 3 ← · 16 stsRow 4 → · 16 stsRow 5 ← · 16 stsRow 6 → · 16 stsRow 7 ← · 16 stsRow 8 → · 16 stsRow 9 ← · 16 stsRow 10 → · 16 stsRow 11 ← · 16 stsRow 12 → · 16 stsRow 13 ← · 16 stsEND Row 14 → · 16 stsBlue marker = first group; dashed = last group.Read chain / join / repeat details in linked steps.
  1. In the first listed working color, ch 17. Start in the second chain from hook. Read right to left: #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  2. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  3. Ch 1, turn (does not count). Read right to left: #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  4. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  5. Ch 1, turn (does not count). Read right to left: #f4e8d2, #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  6. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  7. Ch 1, turn (does not count). Read right to left: #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  8. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  9. Ch 1, turn (does not count). Read right to left: #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  10. Ch 1, turn (does not count). Read left to right: #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  11. Ch 1, turn (does not count). Read right to left: #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  12. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  13. Ch 1, turn (does not count). Read right to left: #f4e8d2, #f4e8d2, #f4e8d2, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #b83e5d, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
  14. Ch 1, turn (does not count). Read left to right: #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2, #f4e8d2. Work one sc per cell; change color on final pull-through. Carry inactive yarn loosely. [16 stitches]
Local design studio · no account required

My Projects