Riso Color Separation: How to Turn One Image Into N Ink Layers
Riso color separation splits one image into N single-ink files. Three methods, real resolution and opacity limits, and the print order that keeps registration…
01/ ARTICLE
What is riso color separation?
Riso color separation is splitting one full-color source image into N single-ink files, one per pass through the press. Most people assume it works the other way around -- hand the press a full-color file and let it sort out the inks. It doesn't. A risograph only ever prints one ink per pass, so the separation happens before the file leaves your machine, not after.
Three methods do this in practice. Each trades setup effort for accuracy:
- Manual channel shift -- pull RGB or CMYK channels apart in Photoshop, GIMP, or code, and map each one to a riso ink.
- A dedicated no-code tool -- upload an image, get an automatic RGB split, assign inks, preview.
- An ICC profile -- built from printed test swatches, mapping digital channels to how your specific inks actually behave on paper.
The rest of this guide walks through each one, then the resolution, opacity, and print-order settings that decide whether the separated file survives the drum.
How do you split one image into N ink layers?
Manual RGB/CMYK channel shifting
Pulling color channels apart and assigning each to an ink is the most direct method there is. In Photoshop or GIMP, that's a channel-extraction step by hand. In code, p5.riso exposes extractRGBChannel(img, channel) and extractCMYKChannel(img, channel) to do the same thing programmatically. Its tutorial walks through a two-color print -- pulling the red and blue channels from one photograph and assigning each to its own ink object.
One other function matters just as much as the extraction: cutout(). It removes one layer's ink wherever another layer already prints, which stops two inks stacking where you didn't want them to. It's most visibly useful when a text layer sits on top of a photo layer and you don't want ink under the letterforms.
Why channel count doesn't equal ink count
RGB gives you three channels. That doesn't mean you're locked to three inks, though. You can duplicate or blend a channel across two inks for a richer separation, or drop a channel entirely and run a two-color print from a three-channel source. Think of the channel split as a starting point, not a constraint.
What tools actually do this for you?
If channels-by-hand isn't your thing, riso-separator is a browser tool built for exactly this job: upload an image, it auto-splits RGB, you assign a riso ink to each channel, and you get a live print preview before exporting anything. There's also a "Crazy Curves" option in there for creative channel remapping beyond a straight split.
Desktop alternatives exist too. Spectrolite, a free Mac app, handles fuller riso-color-aware processing rather than a raw channel split. Which one you reach for depends on how much control the job actually needs:
| Method | Setup effort | Color accuracy | Best for |
|---|---|---|---|
| Manual channel shift (Photoshop/GIMP or p5.riso code) | Medium -- needs channel and mask knowledge | Good, depends on skill | Full control, custom ink counts |
| No-code tool (riso-separator) | Low -- upload and assign | Fair -- straight channel split | Fast drafts, testing a look |
| ICC profile (built from printed test swatches) | High -- requires test prints | Best -- matches actual ink behavior | Repeat production runs, color-critical work |
A straight channel split is fast, and it's good enough for testing whether a look works at all. An ICC profile costs you a round of test prints up front. In exchange, it's the only method of the three that accounts for how your specific inks actually mix on your specific paper.
What resolution and format does a riso separation need?
Every separated layer needs at least 300ppi at final print size. The press itself resolves to 600dpi, so anything under 300ppi comes out visibly soft on paper. Work in RGB while you're separating, then convert each layer to grayscale or black-and-white for export -- one file per ink, named for the actual ink color your shop uses.
Here's the mistake almost everyone makes the first time: darker pixel values print more ink, not less. That's backwards from how a grayscale mask usually behaves. A typical alpha or clipping mask hides more where it's darker; a riso separation lays down more ink where it's darker. Get this inverted and your print ends up with color where you wanted white space, and white space where you wanted color.
If your shop wants a strict 1-bit file rather than grayscale-with-halftone, the settings and thresholds differ enough to earn its own checklist for prepping a 1-bit file for the press.
How much opacity should each separated layer carry?
A risograph can't hold 100% ink density across 100% of the sheet reliably. Large solid areas and heavy borders should sit around 75-85% opacity in the separated layer rather than full black -- push to 100% on big areas and you'll get uneven, patchy coverage on press.
Gradients need their own limit. Keep the visible range between roughly 90% and 10%, and rasterize each gradient individually before flattening it into the final export. A gradient that trails off toward 0% won't hold; it drops out patchy right where it gets thin. For fine detail and vector type, use a dedicated "registration black" channel instead of a process-mixed black -- it holds sharp edges where a mixed black tends to soften.
Text and line minimums follow from the same physical limits: 7pt is the floor for legible text, 0.5pt for line art, in any separated layer.
Do separated layers need to be halftoned?
Depends on the shop, and on the RIP it runs. Some presses halftone at the RIP stage and want a continuous-tone grayscale file from you -- darker values simply print heavier coverage of that ink. Others expect halftones rasterized into the file before export, particularly for gradients, since a live vector gradient sent to a RIP that doesn't halftone it produces the same patchy dropout described above.
Two separated layers with mismatched halftone angles can also moiré where they overlap -- the same way two overlapping halftone screens moiré in any print process. See the full breakdown of halftone angles that avoid moiré on riso if you're separating a photo-heavy piece with more than two color layers.
Check your shop's file-setup page before assuming either behavior. It's a five-minute read that saves a reprint.
What order do you print the separated layers in?
Offset and screen printing follow a light-to-dark convention. Riso doesn't have one. There's no fixed rule for the order you overprint layers, but three rules of thumb cover most jobs:
- Lowest coverage first. This matters most at the center strip, which is prone to roller marks, and the lead edge, which takes the highest feed pressure. Lay down a low-coverage layer first and the feed tires pick up less ink on later passes.
- Opaque before transparent. Riso inks vary in opacity -- some are close to solid, others closer to a wash -- so the more opaque ink goes down earlier in the stack.
- Put the dominant hue last. Riso inks are semi-translucent, so the last-down ink shifts the perceived hue of any overlap toward itself. Want a print to read warm? The warm ink goes on top.
A concrete example: a three-layer poster with a light cyan base, a mid-coverage magenta, and a low-coverage black registration layer. Cyan goes down first (lowest coverage, most opaque relative to the others), magenta second, black registration layer last -- both because it's the lowest-coverage pass and because it's carrying the fine detail you want reading crisp on top.
Frequently Asked Questions
How many ink layers can a riso print have?
There's no hard cap in the file format -- each separated layer is just another pass through the drum -- but practically most riso work runs 2-4 colors. Cost and registration drift both scale linearly with layer count: every extra pass is another chance for the paper to shift half a millimeter, and most shops price per drum change. Above 4-5 layers, mis-registration usually becomes visible before the color gain from another ink does.
Why does my separated layer look inverted -- dark where the image is light?
You likely exported a mask instead of a separation, or your software's darker-equals-more-ink convention got flipped somewhere in the channel-extraction step. In a correct riso separation, darker pixel values print more of that ink, not less -- it's the opposite of how a typical alpha mask or clipping mask behaves, which is the single most common gotcha when someone's first separation comes out backwards.
Can you separate a photo without Photoshop or code?
Yes. Browser tools like riso-separator take an uploaded image, split it into RGB channels, and let you assign a riso ink to each channel with a live preview -- no scripting or layer masking required. It's a straight channel split rather than an ICC-profile-accurate separation, so treat it as a fast draft, not a final press file.
Do separated layers need to be halftoned before I send them to the press?
It depends on the shop and the RIP. Some presses halftone at the RIP stage and want continuous-tone grayscale files; others expect you to rasterize halftones yourself before export, especially for gradients, which most shops want kept between 90% and 10% density and rasterized individually rather than left as live vector gradients. Ask your specific shop's file-setup page before assuming either way.
Conclusion
A few facts settle once you've done riso color separation a handful of times: you're splitting one image into N grayscale-per-ink files, darker pixel values mean more ink rather than less, and the opacity and gradient limits above exist because the press physically can't hold full density everywhere. Layer order has no fixed rule, but coverage-first and dominant-hue-last will get most jobs printing clean on the first pass.
Try a riso separation on your own source image in kott's riso tool, with the ink layers preloaded so you can see the split before you export anything.
02/ OUT
Every setting described above is a real control. Open your own image and sweep it.
All journal entries