This program is part of Netpbm.
ppmshift reads a PPM image as input. Shifts every row of image data to the left or right by a certain amount. The shift parameter determines by how many pixels a row is to be shifted at most.
This is another one of those effects I intended to use for MPEG tests. Unfortunately, this program will not help me here - it creates too random patterns to be used for animations. Still, it might give interesting results on still images.
#take the upper half, and leave it like it is pamcut -top=0 -width=800 -height=300 cs.ppm >upper.ppm #take the lower half, flip it upside down, dim it and distort it a little pamcut -top=300 -width=800 -height=300 cs.ppm | \ pamflip -topbottom | \ ppmdim 0.7 | \ ppmshift 10 >lower.ppm #and concatenate the two pieces pnmcat -topbottom upper.ppm lower.ppm >newpic.ppmThe resulting picture looks like the image being reflected on a water surface with slight ripples.