For a long time I’ve watched the images/prints in newspapers and
commercials thinking how it is actually printed, with just a four colors
overlapping. Forming beautiful little patterns. Some time ago I started
to read about the techniques used and got more and more interested about
it. There are “newsprint”-filters in almost every image-manipulation
software (including GIMP), but they are not very good; I guess they are
aimed for people who actually design data for real CMYK-printing, not
for people who just want to create nice looking effects still using the
full color space (and -scale) like me.
I decided to implement the effect with different design-considerations,
aiming it to be able to look smooth without VERY high resolutions. The
program to be created should be able to “print” any image with as “real”
halftone CMYK as possible, including “pressure”, “ink-bleeding” and
other physical elements affecting when the image is done the actual
(physical) printing. This is what my test turned out.
Processing of an image goes like this:
- Calculate a gray scale mask with selected type (dot, lines with
different powers, square).
- Calculate the orientation matrices for each color-component with
selected angels and size.
- Use attribute “sizediv” to downscale the image with as high quality
- If enabled, convert the downscaled image into CMYK-color space.
- Create a target image with same dimensions with the source image
- Loop though each pixel of the target image
- Resample a color from downscaled CMYK(or RGBA) image.
- Apply contrast (“overcut”)
- Transform the current coordinate with pre-calculated matrices for
each color component and get mask values from these positions.
- Apply noise to the mask values with selected noise-power and size.
- Calculate a delta vector from
- Use attribute “pressure” as contrast for the deltavector.
- Targetcolor = 128 + final deltavector.
Software is made with Qt and tested on Windows 7 and Linux. The graphics
processing is completely custom and does not deploy Qt on any other part
than providing loaders/savers for the images.
I made couple of videos earlier if you want to see it in action. The
first one is little older version with fewer controls, but it shows more
the “dot” masks than the other.
What do you think?
Please log in or register to post a reply.
Oh, I also created a Flickr-set of some of the test images if you are
I think you have successfully recreated the feeling of printed paper.
Great project! Did you consider to make a Photoshop plugin of it?
I was thinking about creating a GIMP-plugin actually. I guess photoshop
could be interesting to try as well.. I’m trying to find a good example
of implementing a plugin for this programs. This case is easier that
what i’m currently working on (workname:
ultimate-point-based-free-transform :)),… i would like my plugin to
“really” be integrated into the main ui instead of single dialog showing
the previews etc. Anyone has any experience about this?