tl;dr: Try out
https://gerbolyze.jaseg.net/So, I built gerbolyze (
https://github.com/jaseg/gerbolyze). You can run it from the source as a command line tool or use
https://gerbolyze.jaseg.net/ (silk only atm). Gerbolyze reads a black-and-white png file and render it directly into an existing gerber file bundle, tested with both KiCAD and Altium. It can do solder mask and silkscreen layers. It renders a template image you can use to scale and align your artwork. Here is a detailed explanation of how to prepare grayscale graphics:
https://github.com/jaseg/gerbolyze/blob/master/README.rst#image-preprocessing-guideI was quite annoyed by all existing tools. I use both KiCAD and Altium, and importing reasonably complex artwork into either of them is a pain. The best option IMO is svg2shenzhen (
https://github.com/badgeek/svg2shenzhen). That works great for SVG vector graphics, but it can't do grayscale dithering of bitmap graphics into SVG to get pseudo-grayscale silkscreen. Inkscape isn't good at handling many (thousands) of primitives, and I am sure KiCAD wouldn't like it either.
Gerbolyze is meant as a bitmap graphics complement to vector graphics tools like svg2shenzhen. With svg2shenzhen you can get really nice-looking precise shapes but you're limited in complexity. Gerbolyze will produce messier output, but can handle arbitrarily complex input. Gerbolyze can output 100k gerber primitives without any issues, and probably at that point your PCB manufacturer's toolchain will start to fall over anyway.