CoughSyrup

#!/usr/bin/python3
# simple script to dither a photograph using Bill Atkinson's algorithm
import sys, PIL.Image

img = PIL.Image.open(sys.argv[-1]).convert('L')

threshold = 128*[0] + 128*[255]

for y in range(img.size[1]):
    for x in range(img.size[0]):
        old = img.getpixel((x, y))
new = threshold[old]
err = (old - new) >> 3 # divide by 8

img.putpixel((x, y), new)

for nxy in [(x+1, y), (x+2, y), (x-1, y+1), (x, y+1), (x+1, y+1), (x, y+2)]:
try:
img.putpixel(nxy, img.getpixel(nxy) + err)
except IndexError:
pass
img.show()

EditText of this page (Last edited Aug 27, 2023)