Python实现为图像添加下雪特效
⽬录
导语
⼀、故宫下雪了:界⾯⼩程序
1)附主程序
2)效果展⽰
⼆、故宫下雪了:⼿绘素描
1)主程序
2)效果展⽰
导语
也许是为了和⾳,在⽴冬这⼀天的⼈间⾥
北⽅多个城市,悄然降下冬天的第⼀场初雪,组成了⼀段旋律
⼀天过两季,黄叶转飞花——从天⽽降落,昼夜不停,⼀夜醒来,阁檐染⽩,故宫完成秋冬交接,
来⾃北⽅的故事纷纷踏雪⽽来。
琼楼银装,粉饰⽟砌,不觉恍⼊天上仙境,宫墙内宾客如云,宫墙外车⽔马龙,若把故宫作天宫,
整夜冬天不觉冷。(可以穿秋裤了.jpg)
(本⽂的部分素材是在北京故宫的朋友,今天游玩刚拍出来的哈——新鲜出炉
今天直接来⼏组关于【故宫,下雪了!】给我们南⽅的⼩伙伴⼉近距离看下故宫雪景图~希望⼤家喜欢!你去过故宫吗?如果没去过那跟着⼩编⼀起⾛进北京故宫的初雪吧~(我没看过,只能看图)
⽆论南北⽆论男⼥⽆论你是否见过雪,我们似乎都共同喜欢着她,⼤抵因为在漫长的冰冷时节中
她是⽼天给予⼈间的惊喜意外,就像漫天⿊夜⾥的繁星,像狂风暴风⾬后的彩虹。
⼀、故宫下雪了:界⾯⼩程序
1)附主程序
# 初始化pygame
pygame.init()
# 根据背景图⽚的⼤⼩,设置屏幕长宽
SIZE = (850, 560)
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("故宫下雪了——⼩程序")
bg = pygame.image.load('snow.jpg')
# 雪花列表
snow_list = []
# 初始化雪花:[x坐标, y坐标, x轴速度, y轴速度]
for i in range(200):
x = random.randrange(0, SIZE[0])
y = random.randrange(0, SIZE[1])
sx = random.randint(-1, 1)
sy = random.randint(3, 6)
snow_list.append([x, y, sx, sy])
clock = pygame.time.Clock()
# 游戏主循环
done = False
while not done:
# 消息事件循环,判断退出
for event in ():
pe == pygame.QUIT:
done = True
# ⿊背景/图⽚背景
# screen.fill((0, 0, 0))
screen.blit(bg, (0, 0))
# 雪花列表循环
for i in range(len(snow_list)):
# 绘制雪花,颜⾊、位置、⼤⼩
pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3]-3)
# 移动雪花位置(下⼀次循环起效)
snow_list[i][0] += snow_list[i][2]
snow_list[i][1] += snow_list[i][3]
# 如果雪花落出屏幕,重设位置
if snow_list[i][1] > SIZE[1]:
snow_list[i][1] = random.randrange(-50, -10)
snow_list[i][0] = random.randrange(0, SIZE[0])
# 刷新屏幕
pygame.display.flip()
clock.tick(20)
2)效果展⽰
Part 01 展⽰——
html特效代码雨代码Part 02 展⽰——
⼆、故宫下雪了:⼿绘素描
1)主程序
root = tkinter.Tk().withdraw()
filename = tkinter.filedialog.askopenfilename() # 打开选择⽂件对话框
try:
depth = 30 # 0-100,越⾼,颜⾊越深
picture_grad = np.gradient(np.asarray(Image.open(filename).convert('L')).astype('int')) # 取图像灰度的梯度值
grad_x, grad_y = picture_grad[0] * depth / 100., picture_grad[1] * depth / 100. # 将获取的维度梯度值进⾏深度处理
base = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.) # 降噪基
_x, _y, _z = grad_x / base, grad_y / base, 1. / base
sce_z, sce_x = np.pi / 2.1, np.pi / 3 # 光源的俯视⾓度值和⽅位⾓度值
# 光源对x,y,z 轴的影响
dx, dy, dz = np.cos(sce_z) * np.cos(sce_x), np.cos(sce_z) * np.sin(sce_x), np.sin(sce_z)
Normalized = 255 * (dx * _x + dy * _y + dz * _z).clip(0, 255) # 光源归⼀化
im = Image.fromarray(Normalized.astype('uint8')) # 重构图像
im.save('转换后的素描图.jpg') # 保存转换后的图⽚
im.show() # 展⽰转换后的图⽚
except Exception:
print('转换失败!')
2)效果展⽰
Part 01 展⽰——
Part 02 展⽰——
到此这篇关于Python实现为图像添加下雪特效的⽂章就介绍到这了,更多相关Python下雪特效内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论