In veltman’s orignial block, Chrome 64 (and probably other versions) displays a black rectangle when any of the svg>defs>pattern (mapping values of the CMYK space) uses a circle of radius 0.
A quick fix would be to not set any CMYK value to 0, eg. in rgbToCmyk return { cyan: Math.max(0.01, value), … };
forked from veltman‘s block: CMYK halftone printing