How to Convert a Photo into a Cross Stitch Pattern

How to turn a photograph into a real, stitchable chart — choosing the photo, and the exact width, color-count, and dithering settings that give a clean result.

A photo and a cross stitch chart are not the same object, and the gap between them is the whole job. A photo is millions of continuous-color pixels; a chart is a finite grid of squares, each one a single thread you can buy on a card. To convert a photo to a cross stitch pattern you have to throw away most of that color information on purpose — carefully, so the loss reads as “stylized” rather than “muddy.” This guide explains how that conversion works, how to pick a photo that survives it, and the exact settings to reach for so the result is something you’ll actually enjoy stitching.

Why a photo is not a pattern

To stitch a piece, you need four things that a JPEG does not give you.

First, a grid. Every cross stitch is one square on Aida (or one intersection on evenweave), so the image has to be quantized into a fixed number of stitches wide and tall. That is the resolution you stitch at — and it’s far coarser than the photo. A portrait you’d display at 2000 pixels wide might become 120 stitches wide.

Second, a bounded palette of real threads. A screen renders 16 million colors. You stitch with DMC stranded cotton, which comes in roughly 500 shades. A pattern with “soft peach gradient” is meaningless; a pattern needs to say DMC 754, DMC 758, DMC 3779 — specific skeins you can put in a basket.

Third, a symbol for each color, so you can tell from a black-and-white chart which thread goes in which square without guessing between two near-identical blues.

Fourth, stitch counts, so you know how many skeins to buy before you start, not three rows from the end.

This is why an AI image generator is the wrong tool when people ask it to “make a cross stitch pattern.” It will hand you a picture of cross stitch — a pretty, plausible image with a faux-fabric texture baked in. But it invents colors that map to no thread, blends shades a grid can’t hold, and produces no symbols and no counts. You cannot stitch it. You can only look at it.

A real cross stitch photo converter does the opposite. It is deterministic and honest: it reduces your actual photo to a grid, snaps every color to the nearest real DMC floss, and reports exactly what it did. The output may be blockier than an AI fantasy, but every square corresponds to a thread you can buy and a stitch you can make. That trade — fidelity-to-reality over prettiness-on-screen — is the entire point. Samplerly’s photo-to-cross-stitch converter is built on the deterministic path, and runs entirely in your browser so the photo is never uploaded anywhere.

How the conversion works, explained plainly

When you convert an image to cross stitch, four steps run in order. Understanding them tells you which knob fixes which problem.

1. Downsample to a stitch grid. The photo is resized so one pixel equals one stitch. You set the width in stitches; the height follows from the photo’s aspect ratio. Going from, say, 1500 pixels wide to 120 stitches wide means each output stitch is the average of a ~12×12 block of original pixels. This is where fine detail dies — and it’s supposed to. An eyelash that was three pixels in the photo is now a fraction of one stitch, so it gets blended into the skin around it. Coarser grid, less detail, fewer stitches, smaller finished piece. This is the single most important setting and the rest of the guide keeps coming back to it.

2. Median-cut palette selection. Now the tool has a small grid of averaged colors, but probably still hundreds of distinct ones. It needs to pick the few that best represent the whole image — your color limit. It uses median-cut: it puts every pixel’s color in one big box in color space, splits the box along its longest axis at the median, and repeats, subdividing the most color-varied regions until it has as many boxes as colors you allowed. Each box becomes one palette color (its average). Median-cut spends your color budget where the image actually varies — a face full of subtle skin tones gets more of the budget than a flat blue sky — instead of slicing the spectrum into even bands and wasting colors on shades the photo doesn’t contain.

3. Snap each palette color to the nearest DMC floss in CIELAB. Those median-cut colors are still arbitrary RGB values. Each one is matched to the closest real DMC stranded-cotton shade so the pattern is buyable. The match happens in CIELAB color space, not RGB, and that distinction is what separates a good converter from a bad one.

RGB distance measures how different two colors are to a monitor. CIELAB is built to measure how different they look to your eye. In RGB, two greens can be numerically close but look obviously different, while a shift your eye barely notices counts as “far.” Matching skin tones, sky gradients, and muted naturals in raw RGB produces those jarring wrong-thread picks — a patch of face that goes slightly green, a sky that bands into the wrong blue. Matching in CIELAB (using a perceptual color-difference metric) picks the floss a human would call closest, so faces stay flesh-colored and gradients stay smooth. If a tool’s skin tones look “off,” weak color matching is usually why.

4. Assign symbols and counts. Each final DMC color gets a distinct chart symbol, and the tool tallies how many stitches use it. That tally drives the floss list and the skein estimate, so you can shop before you start.

The output is a symbol chart, a DMC floss shopping list with skein estimates, and the finished size for your chosen fabric count. No account, no watermark, nothing uploaded.

Choosing the right photo

The conversion can only preserve what survived the downsample, so the photo you start with decides 80% of the result. The brief is the opposite of a good art photo: you want bold and simple, not subtle and detailed.

What works:

  • High contrast between subject and background. The subject should separate by value (light vs. dark), not only by color — once colors are reduced and snapped to thread, a subject that’s merely a different hue from its background can dissolve into it.
  • A single clear subject, large in the frame. One dog, one face, one flower. The viewer’s eye should land immediately.
  • Even, soft, frontal lighting. Flat light keeps detail in both shadows and highlights. Harsh side light buries half the face in shadow that reduces to a single dark thread.
  • A simple, uncluttered background. Busy backgrounds steal your color budget and your stitches from the subject. A plain or blurred backdrop lets the palette spend itself where it matters.
  • Adequate resolution for the width you want — at least as many pixels wide as stitches, ideally a few times more. A 400-pixel photo blown up to a 150-stitch chart only invents mush.

What to avoid:

  • Busy scenes — a crowd, a cluttered room, a forest. Everything competes; nothing reads.
  • Low light, heavy shadow, or strong backlight. A backlit subject becomes a near-black silhouette after value reduction.
  • Lots of tiny, important detail — text on a sign, jewelry, individual leaves. Sub-stitch detail can’t be stitched and just adds noise.
  • Heavy existing filters or compression artifacts, which become real, snapped-to-thread colors in the pattern.

Quick test: squint hard at the photo until it blurs. If you can still tell what it is and where the subject stops, it will convert picture to cross stitch cleanly. If squinting turns it to soup, the chart will be soup too.

Subject-by-subject advice

Different subjects fail in different ways and want different settings. Use this as a starting point, then adjust.

SubjectWatch out forSettings to reach for
Portraits / facesSkin tones go blotchy if colors are too few or matching is weak; eyes and mouth are tiny but carry the likenessGo larger — 120–180 wide minimum so the face has room; 20–30 colors; dithering on for smooth skin. Crop tight to the face.
PetsFur is fine high-frequency detail that downsampling flattens; dark animals lose all definition100–150 wide; 15–25 colors; dithering on for soft fur. Pick a photo with catchlights in the eyes and a lit (not shadowed) coat.
Landscapes / skiesSmooth gradients band into ugly stripes; lots of small elements (leaves, ripples) become confetti100–140 wide; 15–20 colors; dithering on — this is exactly what dithering is for. Crop out fiddly foreground clutter.
FlowersPetal gradients band; a busy garden splits the budgetOne bloom, filling the frame; 80–120 wide; 12–18 colors; dithering on for petal shading.
Logos / graphic / textAnti-aliased edges create dozens of fringe colors; flat areas don’t need manyFew colors — 4–10; dithering OFF to keep edges crisp and areas flat. Use a high-res source; expect to need width for any small text.
BuildingsRepeating windows and brick read as noise; straight lines go jagged on a coarse grid100–140 wide to hold the lines; 12–20 colors; dithering off or low — architecture usually wants flat, clean planes.

The split that runs through the whole table: photographic subjects (faces, pets, skies, flowers) want more colors and dithering on, because they’re made of gradients. Graphic subjects (logos, text, flat-color art) want few colors and dithering off, because they’re made of flat regions and hard edges, and dithering would only fuzz them.

Choosing the stitch width

The width — how many stitches across — is the master control. It sets three things at once that pull against each other:

  • Detail. More stitches = finer detail survives the downsample.
  • Effort. Stitch count grows with the square of width. Double the width and you roughly quadruple the stitches.
  • Finished size. Width ÷ fabric count = inches across.

That squaring is the trap. Bumping a chart from 100 to 150 wide feels like “a bit more detail.” It’s actually ~2.25× the stitches — a weekend project becomes a multi-week one. Pick the smallest width that still reads as your subject.

Finished size depends on the fabric count (stitches per inch). Here’s how stitch width plays out on common counts, with a square-ish image as the example:

Width (stitches)Detail levelFinished width on 18-cton 14-cton 11-ctRough stitch count (square)
50Bold / pixel-art; simple shapes only2.8”3.6”4.5”~2,500
80Clear subject, soft detail4.4”5.7”7.3”~6,400
100Good general-purpose detail5.6”7.1”9.1”~10,000
130Strong detail; faces start working7.2”9.3”11.8”~16,900
160Fine detail; portraits, pets8.9”11.4”14.5”~25,600
200Very fine; large, long-term project11.1”14.3”18.2”~40,000

Note how the same width gives a different finished size on every fabric — higher count packs more stitches per inch, so the piece comes out smaller and finer. The cleanest way to plan is backwards from the fabric you have: decide the finished size you want, multiply by your fabric count to get the width in stitches, and set that. A 7-inch piece on 14-count is ~98 stitches wide. See the aida count and fabric sizes guide for the full table and how count changes the look and the difficulty.

Choosing the number of colors

If width controls shape, color count controls mood and labor. The trade is real and goes both directions.

Fewer colors means faster stitching (fewer thread changes, less re-threading), cheaper materials (fewer skeins), and a bolder, more graphic, poster-like look. The cost is lost subtlety: gradients flatten into stripes and skin tones go chalky or blotchy.

More colors means smoother gradients, believable skin, and rich shading. The cost is more thread changes, more skeins to buy and organize — and confetti.

Confetti is the word for lots of single, isolated stitches of a color scattered across the chart with no neighbors. Each one means cutting a length of floss, stitching one X, burying the tail, and moving on — for one stitch. A photo full of fine variation, converted at a high color count, produces hundreds of these. They’re slow, fiddly, and barely visible in the finished piece. Confetti is the main reason a too-high color count makes stitching miserable.

ColorsLookEffortBest for
2–6Bold, graphic, poster/silhouetteFast, few skeins, almost no confettiLogos, text, silhouettes, simple icons
8–15Clean, stylized, illustration-likeModerate; manageable confettiPets, flowers, simple scenes, beginners
16–25Photographic with believable shadingSlower; watch for confettiPortraits, detailed pets, landscapes
30–50Near-photographic, very smoothSlow; heavy confetti likelyShowpiece portraits for experienced stitchers
60+Diminishing returnsOften worse — drowns in confettiRarely worth it

More is not better past a point. Beyond ~30 colors you’re usually adding shades the eye can’t distinguish at stitching scale while multiplying single-stitch tedium. The look barely improves; the labor balloons.

To reduce confetti without losing the picture: lower the color count first — it’s the most direct fix. If you need the colors but hate the scatter, increasing the width gives each color more contiguous room, so isolated stitches cluster into stitchable patches. And turning dithering off removes the deliberately-scattered single stitches that dithering adds (more on that next).

Dithering

Dithering is one toggle with a big effect, and it’s the most misunderstood setting. With only a handful of thread colors, a smooth gradient — a sky, a cheek — has to band into visible stripes, because each row jumps to the next-nearest available color. Floyd–Steinberg dithering hides those bands. When it rounds a pixel to the nearest palette color, it measures the rounding error and spreads that error into the neighboring not-yet-processed pixels, nudging them toward the opposite color. The result: instead of a hard stripe boundary, you get a fine intermingling of two colors that your eye blends into the in-between shade you wanted. It fakes more colors than you actually have.

Turn dithering ON for:

  • Photos generally, especially anything with smooth tonal transitions.
  • Skies and gradients — the textbook case; it turns banding into smooth blends.
  • Portraits — it keeps skin from going blotchy by softening the steps between flesh tones.
  • Pets — it softens fur and avoids hard edges where a coat shades from light to dark.

Turn dithering OFF for:

  • Flat / graphic images — solid color blocks should stay solid, not get speckled.
  • Logos and text — dithering fuzzes crisp edges and muddies flat fills; keep them clean.
  • Anything already bold and posterized, where the banding is the intended look.

The trade-off in one line: dithering buys smoother color at the cost of more scattered single stitches. Those intermingled pixels are, in stitching terms, more confetti. So dithering and color count interact — dithering can let you lower the color count (it fakes the in-between shades) while keeping gradients smooth, which is often a better deal than piling on colors. On a portrait, 18 colors with dithering on frequently beats 30 colors with it off: smoother and fewer skeins. Try it both ways and compare.

From chart to finished piece

Once you have a chart, the converter’s other two outputs do the planning for you.

The floss list names every DMC color in the pattern, its symbol, and how many stitches use it — converted into an estimated number of skeins. A skein is the standard pull-out card of DMC stranded cotton: about 8 meters of 6-stranded thread. Most cross stitch uses 2 of those 6 strands, so one skein goes a long way — but coverage depends on count, strand count, and how much frogging (un-stitching) you do.

Buy one extra skein of your main colors — the big background fields and any dominant color. Skein estimates are close but not exact, dye lots vary slightly between batches, and running out of your background thread two-thirds through, then finding the new skein is a hair off, is the classic heartbreak. The extra skein is cheap insurance; minor colors used for a few stitches you can safely buy exactly.

Plan your fabric size from the finished dimensions the converter reports, then add margin — at least 3 inches of bare fabric on every side for mounting and framing. So an 8×10-inch design wants roughly a 14×16-inch cut. The aida count and fabric sizes guide covers choosing a count and sizing the cut.

When it’s time to actually stitch, the chart is a grid of symbols keyed to the floss list — find the center, work in sections, count carefully. If you’re new to working from a symbol chart, how to read a cross stitch pattern walks through reading the grid, the symbol key, and keeping your place.

Step-by-step with Samplerly

Here’s the full path to make a cross stitch pattern from photo to floss list.

  1. Upload your photo. Drag and drop it onto Samplerly’s photo-to-cross-stitch converter, or click to choose a file. It loads and converts in the browser — the photo never leaves your device, so personal pictures stay private. Crop tight to your subject first (in any photo app) if there’s clutter around the edges.

  2. Set the stitch width. Start from your fabric: finished-inches × count = width. No fabric yet? Start at 100 for a general subject, 130–160 for a face or pet. Watch the live finished-size and stitch-count stats as you change it.

  3. Set the max colors. Begin at 15 and adjust by subject — drop toward 6–10 for graphic images, climb toward 20–30 for portraits. Watch the floss-color count.

  4. Set the Aida count to the fabric you’ll stitch on (commonly 14). This is what turns the grid into a real finished size — it doesn’t change the chart, only the inches.

  5. Toggle dithering. On for photos, skies, faces, pets; off for logos, text, flat art. Flip it and watch the preview.

  6. Review the stats. The converter shows the grid (stitches wide × tall), total stitches, number of floss colors, and finished size for your count. This is your reality check. If the total stitches make you wince, lower the width. If there are more colors than you want to manage, lower max colors. Tune until the preview looks right and the numbers are a project you’ll finish.

  7. Download or print. Export the chart as a PNG, or print it directly. No watermark, no account.

  8. Buy the floss. Take the DMC list shopping — physical store or online. Grab a spare skein of each main color.

That’s the whole loop: photo in, stitchable chart and shopping list out, no upload and no sign-up.

Worked example A: a dog portrait

You have a phone photo of a golden retriever, ~2400 pixels wide, lit by a window, sitting against a plain wall. Good raw material: single subject, even light, simple background, plenty of resolution.

You’ll stitch on 14-count and want it around 9 inches wide, so width = 9 × 14 ≈ 126 stitches. Fur is gradient-heavy, so dithering on. You start at 15 colors — the face looks flat, the golden coat reads as two slabs of tan. Bump to 22 colors: the muzzle and the shading around the eyes come alive. The stats now read 126 × ~150, ~18,900 stitches, 22 colors, 9.0 × 10.7 inches — a real but doable project. Done. You buy 2 skeins each of the two dominant golds, 1 of everything else.

You want to stitch a friend’s café logo: a brown coffee cup over flat cream, plus the shop name underneath, from a clean 1200-pixel PNG. This is graphic, not photographic — invert every instinct from example A.

Dithering off (you want crisp edges and flat fills, no speckle). Colors low — the art has maybe four real colors, so set 6 to allow a little for anti-aliased edges. Width is driven by the text: at 80 wide the lettering turns to mush, so push to 140 to give the small letters enough stitches to be legible. Stats: 140 × ~90, ~12,600 stitches, 6 colors — fast going, since flat color blocks fly compared to confetti. The few-color, no-dither, wider-for-text recipe is the opposite of the portrait recipe, and that’s exactly right for a logo.

Troubleshooting

Most bad results trace to one of these, and each has a direct fix.

ProblemLikely causeFix
Muddy / washed-outToo few colors, or a low-contrast / flatly-lit photoRaise colors a step; turn dithering on; if it persists, the photo lacks contrast — pick one with stronger light and a clearer subject.
Confetti — too many single-stitch colorsColor count too high, and/or width too low for that many colorsLower max colors first; if you need the colors, raise the width so each gets more room; turn dithering off if the scatter comes from it.
Skin tones look off (green, gray, blotchy)Color count too low for a face, or harsh lighting baking shadows into one dark threadRaise colors to ~20–30; turn dithering on; go wider so the face has room; choose a softer-lit, frontal photo.
Pattern too big / too many stitchesWidth too highLower the width (remember stitch count scales with the square); or move to a higher fabric count to shrink the same width.
Pattern too small / loses detailWidth too low, or fabric count too high for that widthRaise the width; or drop to a lower count (11 vs. 14) to make the same stitch count bigger.
Gradients band into stripesDithering off, or too few colors for a smooth transitionTurn dithering on; raise colors a step if bands remain.
Subject blends into backgroundSubject and background are close in valueRe-crop or pick a photo where the subject is clearly lighter or darker than its backdrop; raising contrast in a photo app before uploading helps.
Edges look jagged / lines wavy (logos, buildings)Grid too coarse to hold straight linesRaise the width so lines have more stitches; keep dithering off so edges stay crisp.

The two levers you’ll reach for most are width and colors, and they trade against effort in opposite ways: width fixes detail but multiplies stitches; colors fix smoothness but multiply skeins and confetti. When in doubt, change one at a time and watch the stats. And remember the ceiling — no setting rescues a genuinely bad photo. If three different settings all look wrong, the answer is usually a better source image, not another tweak.

Try it now

You don’t have to take any of this on faith — the converter shows you the result and the numbers as you change every setting, so the fastest way to learn is to turn a picture into cross stitch and watch what each knob does. Drop in a photo, try the widths and colors above for your subject, flip dithering on and off, and download the chart and floss list when it looks right.

Open Samplerly and convert your photo to a cross stitch pattern → — free, in your browser, no upload, no account, no watermark.