Skip to content

Instantly share code, notes, and snippets.

@danyshaanan
Last active April 20, 2022 12:32
Show Gist options
  • Star 20 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save danyshaanan/6754465 to your computer and use it in GitHub Desktop.
Save danyshaanan/6754465 to your computer and use it in GitHub Desktop.
A Python script to pixelate an image and add a thin black margin between the simulated pixels.
from PIL import Image
backgroundColor = (0,)*3
pixelSize = 9
image = Image.open('input.png')
image = image.resize((image.size[0]/pixelSize, image.size[1]/pixelSize), Image.NEAREST)
image = image.resize((image.size[0]*pixelSize, image.size[1]*pixelSize), Image.NEAREST)
pixel = image.load()
for i in range(0,image.size[0],pixelSize):
for j in range(0,image.size[1],pixelSize):
for r in range(pixelSize):
pixel[i+r,j] = backgroundColor
pixel[i,j+r] = backgroundColor
image.save('output.png')
@danyshaanan
Copy link
Author

@qaixerabbas
Haven't checked but I'm pretty sure that it's due to the differrence of division operators in python 2.7 and 3 . Replace all 4 occurrences of / with //, so that it would be integer division again, and it should be OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment