用Python将GIF图片转化成手绘图

694 阅读1分钟

今天是第一次在这里写文章,是个小萌新,请大佬们多多关照呀

今天我给带大家来将GIF图片转化成一张好看的手绘图片

用的是PIL读取图片 和numpy处理图片

完整代码如下:

from PIL import Image import numpy as np

vec_el = np.pi/2.2 #光源俯视角度

vec_az = np.pi/4. #光源方位角度

depth = 10.

im1 = Image.open("mayi_50.gif").convert('L')

a = np.asarray(im1).astype('float') # 可改为a = np.asarray(Image.open('TREE.jpg').convert('L')).astype(float)

grad = np.gradient(a) #或取图像的梯度值

grad_x,grad_y=grad #分别取纵横梯度值

grad_x = grad_x*depth/40. #调节得到想得到的效果

grad_y = grad_y*depth/40. #调节得到想得到的效果

dx = np.cos(vec_el)*np.cos(vec_az)#对光源X轴的影响

dy = np.cos(vec_el)*np.cos(vec_az)#对光源Y轴的影响

dz = np.sin(vec_el) #对光源Z轴的影响

A = np.sqrt(grad_x2+grad_y2+1.)

uni_x = grad_x/A

uni_y = grad_y/A

uni_z = 1./A

a2 = 255*(dxuni_x+dyuni_y+dz*uni_z) #光源归一化

a2 = a2.clip(0,255)

im2 = Image.fromarray(a2.astype('uint8')) #重新构造图片

im2.save('mayi_51.gif') #改名保存

效果图如下

需要其他小游戏源码或者python和爬虫学习资料,可以加裙821189983,备注S就可以领取啦,群里面还有大神哦。