python画素描画

废话不多说,直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from PIL import Image, ImageFilter, ImageOps
img = Image.open('/Users/demo/Desktop/b.png') # 原图路径
def dodge(a,b,alpha):
return min(int(a*255/(256-b*alpha)),255)
def draw(img,blur=25,alpha=1.0):
img1 = img.convert('L')
img2 = img1.copy()
img2 = ImageOps.invert(img2)
for i in range(blur):
img2 = img2.filter(ImageFilter.BLUR)
width,height = img1.size
for x in range(width):
for y in range(height):
a = img1.getpixel((x,y))
b = img2.getpixel((x,y))
img1.putpixel((x,y),dodge(a,b,alpha))
img1.show()
img1.save("/Users/demo/Desktop/a1.png") # 生成后的图片
draw(img)

效果图
原图:
在这里插入图片描述
转换后的图:
在这里插入图片描述