今天是第一次在这里写文章,是个小萌新,请大佬们多多关照呀
今天我给带大家来将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就可以领取啦,群里面还有大神哦。