2 回答
TA贡献1943条经验 获得超7个赞
我认为最简单的方法是使用PIL.Image.resize函数:
from PIL import Image
im = Image.open('./dumpster/Mario_org.jpg')
org_size = im.size
pixelate_lvl = 8
# scale it down
im = im.resize(
size=(org_size[0] // pixelate_lvl, org_size[1] // pixelate_lvl),
resample=0)
# and scale it up to get pixelate effect
im = im.resize(org_size, resample=0)
TA贡献1876条经验 获得超5个赞
这是一个如何使用 Pillow 进行像素化的示例。
from PIL import Image,ImageStat
size = (200, 200)
actual = Image.open('/path/to/your/image.png')
og = actual.resize(size)
output = Image.new('RGB',(200,200))
tile_width = 5
for i in range(0,200,tile_width):
for j in range(0,200,tile_width):
box = (i,j,i+tile_width,j+tile_width)
region = og.crop(box)
median = ImageStat.Stat(region).median
r = Image.new('RGB',(tile_width,tile_width),tuple(median))
output.paste(r,(i,j))
output.show()
请注意,还有其他方法可以选择每个图块的颜色。
添加回答
举报