TROUBLESHOOTING · UV & DTF
White choke not working? Every white-edge problem on UV and DTF prints, and the fix for each
If you got here by typing something like "white choke not working", "white outline around UV print" or "DTF white edge", you've probably already raised the choke, lowered it, re-exported the PNG and blamed the printer. This guide goes symptom by symptom: what you're seeing, what is actually causing it, and the fix. Most of them come down to one thing the choke setting can't touch.
Find your symptom
- Thin white rim all the way around the design on a dark substrate → white halo
- Choke set high and the rim is still there, now with missing fine lines → choke not working
- Dusty, speckled or fuzzy white on hair, fur, smoke, shadows → soft-edge fringe
- White peeking out on one side only → registration (the one case choke is for)
- White edge on a DTF transfer after pressing → DTF white edge
- White rectangle around the whole image → no transparency at all
- Looks perfect on screen, prints with a white line → screen vs printer
- Came from Canva, remove.bg or Photoshop → where the fringe comes from
- Using xTool Studio, eufyMake, RasterLink or VersaWorks → your software
"White halo" or "white outline around my UV print"
What you see: a thin, bright rim tracing the shape of the design on black acrylic, dark wood, coloured metal or a foil balloon. On white media it isn't there.
Cause: the PNG has semi-transparent pixels along its edge, with alpha values between 1 and 254. Every background remover and every anti-aliased edge produces them. The RIP builds the white underbase with one rule: any opacity → white underneath. So the white layer extends all the way to the outermost 1%-visible pixel, with almost no colour on top of it. That's the rim.
Fix: make the edge binary. Every pixel either fully opaque or fully transparent, with the colour of the kept edge pixels corrected so they don't carry a tint from the old background. Then the white ends exactly where the colour ends. What these pixels are explains the mechanism in depth.
"White choke not working" / "white choke isn't enough"
What you see: you raised the choke (pullback, white shrink, white reduction, depending on the RIP). At 1–2 the rim got thinner but didn't go away. At 4–8 the rim finally went, but thin lines, serifs and small text now print dark or vanish.
Cause: choke erodes the white layer by a fixed number of pixels from the edge the RIP detected. The soft fringe from background removal is typically 3 to 8 pixels wide and fades, so a small choke leaves the inner, half-opaque part of it still white-backed, and a big choke eats through every detail narrower than twice the choke. You're trading a white rim for a dark rim.
Fix: clean the file first, then set choke for the printer, not for the design: 1–2 px at 720 dpi, 2–4 px at 300 dpi. White underbase choke explained has the pixel-to-millimetre table and the test print to dial it in once.
Choke is a registration tolerance. If you need more than a couple of pixels of it, the file is asking for white where there is no colour.
"Dusty edge", "speckles", "fuzzy white" on hair, fur or smoke
What you see: instead of a clean rim, a cloud of white dots and streaks around soft areas, and sometimes white specks floating away from the design entirely.
Cause: the same ghost pixels, but spread over a wide area. Hair and fur cutouts have hundreds of isolated semi-transparent pixels; every one gets a dot of white under it. Stray specks far from the subject are leftovers the background remover missed.
Fix: binarize with a threshold you can see. Ghost Pixel Cleaner highlights every semi-transparent pixel in green before you commit, so you can slide the threshold until the hair keeps the strands you want and loses the dust, and stray specks simply disappear. Fully soft shadows and glows can't be printed by a binary-white printer at all; keep them inside the solid area or drop them.
White peeking out on one side only
What you see: a sliver of white along the left (or top, or right) edge of every shape, but not all the way around.
Cause: this one is not ghost pixels. The white and colour passes landed slightly offset: registration error, a few hundredths of a millimetre, normal on every printer.
Fix: this is exactly what choke exists for. 1–2 px pulls the white in enough that the colour always covers it. If the offset is large or changes from print to print, the printer needs a head alignment, not a bigger choke.
"DTF transfer has a white edge" / "white border after pressing"
What you see: a white outline around the transfer on a dark shirt. You've changed powder, film, cure time and pressure and it's still there.
Cause: DTF prints a white layer behind the colour, from the same file, with the same any opacity → white rule. Powder and film have nothing to do with it; the white is in the print before the powder touches it.
Fix: identical to UV: a hard-edged PNG. Why DTF transfers have a white edge covers the DTF specifics, and the free DTF edge cleaner is the same tool with DTF presets.
A white rectangle around the whole image
What you see: not a rim but a full block of white (and colour) the size of the canvas.
Cause: the file has no transparency at all. Either it's a JPG, or the PNG was exported with a solid background (Canva without "Transparent background" ticked, Procreate with the background layer visible, Photoshop with the Background layer still there).
Fix: re-export as PNG with transparency; see the Canva and Procreate / Photoshop guides for the exact settings. No cleaning tool can invent transparency that isn't in the file.
"The PNG looks perfect on screen but prints with a white line"
Cause: your monitor blends a 5%-opaque pixel into whatever is behind it, so you can't see it. A printer can't print 5% of a pixel. The RIP rounds "a little bit there" up to "there", and prints white under it. Nothing is wrong with the file for screens; it's wrong for printers, which need a yes/no edge.
Fix: look at the file the way the printer does. Ghost Pixel Cleaner's preview paints every semi-transparent pixel toxic green on a substrate colour of your choice, so the invisible fringe becomes obvious before you waste a sheet.
Canva, remove.bg, Photoshop "Remove background", Procreate: where the fringe comes from
- Canva Background Remover: soft 2–8 px edge by design, plus occasional leftover blobs. Download as PNG with Transparent background, then clean.
- remove.bg and other AI removers: smooth, wide fringes, especially around hair. Great on screen, worst case for printing.
- Photoshop Select Subject / Select and Mask: soft mask edge; Decontaminate Colors fixes the tint but not the transparency. Defringe recolours, it doesn't harden.
- Procreate: every brush stroke is anti-aliased (1–3 px), and airbrush or blur on the silhouette makes it 20–50 px.
All four produce files that are correct for screens. The cleaning step is what turns them into files that are correct for white-underbase printing.
By software: xTool Studio, eufyMake, RasterLink, VersaWorks and others
Every RIP has a white-layer reduction setting under some name, and every one of them does the same thing: erode the mask it computed. None of them removes semi-transparent pixels from the source. So the workflow is the same everywhere: clean first, small choke second, and don't choke twice.
xTool Omni O1 (xTool Studio)
The Omni O1 builds its white layer from the imported artwork, and xTool Studio's white reduction has the same limits as any other choke: it trims a clean edge nicely and makes a soft edge look worse before it looks better. Clean the PNG, import the result, keep the reduction at its minimum, and the halo on black acrylic goes away without losing the thin strokes. If your version of xTool Studio lets you import the white layer separately, use the _white.png plate from the export; it's already pulled in.
eufyMake E1
The most-asked-about case in the E1 community, and the printer is almost never at fault. The E1 guide walks through it step by step.
Mimaki (RasterLink)
RasterLink's special-plate size adjustment shrinks or grows the white plate relative to the colour. It's precise for registration and useless against a soft fringe. Feed it a clean colour plate and leave the adjustment near zero, or import the cleaned white plate directly.
Roland (VersaWorks)
VersaWorks' choke width for the white special colour works the same way. Set it once for the machine on a clean test file; stop tuning it per design.
Epson, AcroRIP, Cadlink and the rest
Same rule. If the setting is called choke, pullback, shrink, reduction or trap, it erodes the white mask. It will never see the pixels that are 30% opaque, because to the RIP those pixels are simply "on".
Fix the file, not the symptom
Drop the PNG that keeps printing with a white edge. Ghost Pixel Cleaner shows every semi-transparent pixel in green, hardens the edge at the threshold you choose, corrects the edge colour, and exports a colour plate plus a white plate that is guaranteed to sit inside it. 10 seconds, free, in your browser.
Clean a PNG now →Why one fix covers all of these
Every symptom above except registration comes from the same root: the file contains pixels that are neither ink nor no-ink, and the printer has to choose. Ghost Pixel Cleaner makes the choice before the RIP does:
- Binarized alpha. Every pixel becomes 0 or 255 at a threshold you can see live.
- Edge decontamination. Pixels promoted to opaque get the background tint removed, so the clean edge doesn't show a pale line.
- White plate as a subset of the colour plate. The white is built from the clean colour mask, shrunk by the choke you set. White can't exist where colour doesn't.
- Standard PNGs out.
_cmyk.png,_white.png, a preview on your substrate colour, and a report of how many pixels were removed. They load into any RIP.
Then set your RIP's choke to zero, or to the 1–2 px your printer's registration needs, and stop thinking about it.
Frequently asked questions
Why is my white choke not working?
Choke only shrinks the white layer by a fixed number of pixels from the edge the RIP detected. If your PNG has semi-transparent edge pixels, the RIP puts white under all of them, and the fringe is usually wider than any choke you can set before thin details disappear. Remove the semi-transparent pixels first; then 1–2 px of choke is enough.
Is the white edge my printer's fault?
Almost never. Print the same file on white media with no underbase and the edge disappears, which proves the hardware is fine. The exception is white peeking out on one side only, which is registration, and a small choke does fix that.
How much white choke should I use?
On a clean file: 1–2 px at 720 dpi, 2–4 px at 300 dpi. Print a circle and some 1–2 px lines on a dark substrate; if white peeks out, add a pixel; if the lines go dark, you've gone too far.
Does this work with xTool Studio and the xTool Omni O1?
Yes. The tool fixes the file before it reaches xTool Studio, so the white layer the software builds has a clean edge. Keep the software's own white reduction at its minimum so you don't choke twice.
Can I keep soft shadows and glows?
Not on a printer with a binary white layer, which is most UV and DTF printers. A 30% shadow becomes either solid or nothing. Keep effects inside the solid area of the design, or accept that they'll be cut at the threshold you choose.
Will this change how my design looks?
Only the outermost 1–3 pixels of the edge, which is exactly the part that was printing wrong. The default threshold keeps pixels that are more than half opaque, so the silhouette stays where you drew it.