Soft proof + CMYK separations
Load an image, pick a press profile and rendering intent, see the simulated print output alongside the four C / M / Y / K ink plates. Hover any canvas for a floating colour picker with source sRGB, absolute Lab, CMYK ink percentages, CMYK round-trip Lab, and both ΔE 00 (perceptual) and ΔE 76 (geometric). The split swatch at the top shows source RGB (left) vs soft-proof RGB (right) so you can see the gamut compression at a glance.
Source: iccimage.js
· API reference: ICCImage.md
· License: MIT
· Lab uses relative colorimetric (D50-adapted)
Original vs soft proof
Original (sRGB)
Soft proof — simulated press output
CMYK separations
Each plate below is the actual ink-channel data from the
toSeparation() output, rendered via
renderChannelAs().
Performance breakdown
Cold run (LUT build + transform)
Warm run (cached LUT, transform only)
Cold = first run (LUT build + transform). Warm = second run (cached LUT, transform only). Transform and canvas render are timed separately. MPx/s is for the warm transform pass only.