基于Python实现人像雪景小程序

目录
  • 导语
  • ​正文
    • 1)素材环境(仅部分)
    • 2)运行环境
    • 3)代码演示
    • 4)效果展示

导语

哈喽~大家早上好鸭!

冷空气来袭,不少地方一夜入冬,南方地区除了冷就是雨,而北方除了冷还有雪。

就说下雪这件事吧,其实南北都特别期待。诗意的白色世界、戏剧般的氛围,容易让人情不自禁地

沉溺其中。

继上一期的【故宫,下雪了】一夜醒来,故宫完成秋冬交接,来自北方的故事纷纷踏雪而来后,小伙伴们都墙裂要求雪景少不了,还需要人物自拍美美的照片!

所以今天我们就来啦,码住这份攻略,雪景最美~​

​(其实吧:我们这边城市基本上都下不来雪,只能自己动手欣赏一波啦——Python在手,雪景我也有!)

​正文

今天这份雪景小程序是超级升级版本的啦,雪花飘落还有形状也更接近啦!

小程序还会自动生成每一帧雪花飘落的图片,跟GIF动态雪花人像图,还不用自己录制视频看效果,真的简单方便,哈哈哈哈~省下了很多步骤!那让我们正式开始叭

开始制作雪景图:

1)素材环境(仅部分)

2)运行环境

本文涉及的环境:Python3、Pycharm、Pygame、PIL模块以及部分自带模块。 

模块安装:大家习惯使用什么用什么,使用镜像源安装更快速不容易报错。

pip install +模块名 或带豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名

3)代码演示

3.1 导入模块

import pygame
import random
import os
from PIL import Image
from pygame.sprite import Sprite
from pygame.sprite import Group
from PIL import ImageGrab
import shutil

3.2 定义雪花类、雪花飘落位置、大小等

# 表示单个雪花的类
class Snow(Sprite):
    def __init__(self, image, pos, speed, size, screen):
        super().__init__()
        self.screen = screen
        self.speed= speed
        self.pos = pos
        self.image = pygame.transform.scale(image, size)
        self.rect = self.image.get_rect()
        self.rect.x = pos[0]
        self.rect.y = pos[1]

    def blitme(self):
        self.screen.blit(self.image, self.rect)

    def update(self):
        self.rect.x += self.speed[0]
        self.rect.y += self.speed[1]

        # 雪花旋转
        self.image = pygame.transform.rotate(self.image, 90)
        if self.check_edges():
            self.rect.x = self.pos[0]
            self.rect.y = self.pos[1]

    def check_edges(self):
        screen_rect = self.screen.get_rect()
        if self.rect.top >= screen_rect.bottom:
            return True
        return False

def add_snow(path):
    pygame.init()
    size = Image.open(path).size
    screen = pygame.display.set_mode(size, pygame.NOFRAME)
    s = pygame.display.get_surface()

    bg = pygame.image.load_extended(path).convert()
    screen.blit(bg, (0, 0))

    # 加载雪花图片
    snow_image = pygame.image.load_extended('snow.png')
    snow_group = Group()

    for i in range(500):
        # 雪花起始位置
        pos = (random.randint(-size[0], size[0]), random.randint(-size[1], 0))

        # 控制雪花大小
        n = random.randint(4, 12)
        snow_size = (n, n)

        # 雪花下落速度
        speed = (2, random.randint(2, 7))
        snow_group.add(Snow(snow_image, pos, speed, snow_size, screen))

    clock = pygame.time.Clock()

3.3 创建”frames“文件夹用于保存每一帧图片

if not os.path.exists("frames"):
        os.makedirs("frames")

    flag = True
    num = 1;
    while flag:
        for event in pygame.event.get():
            # 退出窗口
            if event.type == pygame.QUIT:
                flag = False

        screen.blit(bg, (0, 0))
        for snow in snow_group.copy():
            snow.blitme()
        snow_group.update()

        # 保存当前画面
        pygame.image.save(screen, "frames\\"+str(num)+".jpg")

        # 刷新屏幕
        pygame.display.update()

        # 设置fps
        clock.tick(30)
        if num >= 250:
            break
        num += 1

3.4 制作GIF图,效果就更加直观了

 im = Image.open("frames\\1.jpg")
    images = []
    size = (int(im.size[0]/2), int(im.size[1]/2))
    for file in range(2, num + 1):
        filepath = "frames\\" + str(file) + ".jpg"
        temp = Image.open(filepath)
        temp = temp.resize(size, Image.ANTIALIAS)
        images.append(temp)

    im = im.resize(size, Image.ANTIALIAS)
    im.save('snow.gif', save_all=True, append_images=images, loop=2, duration=5)

4)效果展示

每一帧一帧的图片文件夹就不多说,直接给大家展示一列即可。其他的都只展示生成的GIF图就行了哈。

4.1 超可爱小姐姐雪景图。

——原图如下:

——GIF效果图如下:

​——每一帧的图片.jpg

4.2 雪景图合集

这里展示的都是效果图,原图懒的上传了!图片太大都传不上来,找了很多方法,掘金传了然后直

接复制到csdn的,所以带着水印撒!可能是我找的图片太高清了~

以上就是基于Python实现人像雪景小程序的详细内容,更多关于Python人像雪景小程序的资料请关注我们其它相关文章!

(0)

相关推荐

  • python使用turtle库与random库绘制雪花

    本文实例为大家分享了python绘制雪花的具体代码,供大家参考,具体内容如下 代码非常容易理解,画着玩玩还是可以的.直接上代码 # -*- coding: utf-8 -*- """ Created on Fri Jan 12 14:35:14 2018 @author: Administrator """ from turtle import * from random import * def ground(): hideturtle() s

  • python绘制雪景图

    本文实例为大家分享了python绘制雪景图的具体代码,供大家参考,具体内容如下 绘制雪景图,应用到turtle和random. from turtle import * from random import * # 绘制随机雪花 def DrawSnow(snow): x = randrange(-750, 750) y = randrange(-50, 400) snowcolor = (randrange(0, 255), randrange(0, 255), randrange(0, 25

  • Python编程利用科赫曲线实现三维飘雪效果示例过程

    目录 随机雪花 科赫雪花 三维 随机雪花 如果随机生成一些点,然后为每个点绘制一些枝杈,则可以画出类似蒲公英这种结构,只是看上去不太好看而已 import numpy as np import matplotlib.pyplot as plt from numpy.random import rand,randint M,N = 10,100 x = rand(N)*100 y = rand(N)*100 plt.scatter(x,y,marker='.') for i in range(N)

  • Python实现为图像添加下雪特效

    目录 导语 正文 一.故宫下雪了:界面小程序 1)附主程序 2)效果展示 二.故宫下雪了:手绘素描 1)主程序 2)效果展示 导语 也许是为了和音,在立冬这一天的人间里 北方多个城市,悄然降下冬天的第一场初雪,组成了一段旋律 一天过两季,黄叶转飞花--从天而降落,昼夜不停,一夜醒来,阁檐染白,故宫完成秋冬交接, 来自北方的故事纷纷踏雪而来. 琼楼银装,粉饰玉砌,不觉恍入天上仙境,宫墙内宾客如云,宫墙外车水马龙,若把故宫作天宫, 整夜冬天不觉冷.(可以穿秋裤了.jpg) (本文的部分素材是在北京故

  • python实例小练习之Turtle绘制南方的雪花

    导语 又到了裹紧被子,穿起秋裤的季节! 这些天,我们这边开始下雨了,温度瞬间降了10几度. 遭受了秋天第一场寒潮的"侵袭",我是真的冷,一大早穿上了长裙. 寒风呼啸,大雪飘飘,咳咳咳......说的严重了点儿,还没飘雪呢,思维有点儿远了! 唯一的愿望就是: 我们公司的冷空调能不能稍微收住一点儿,话说还有的同事穿着短衣短裤是怎么熬过来的, 咋没感觉冷呢?后面我还加了一件外套来着!后来想了想:估计是男孩子皮比较厚一点点.[开个玩笑.jpg] 哼唧唧,独冷冷不如众冷冷,木木子来帮你了~大家一

  • python实现雪花飘落效果实例讲解

    在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教大家如何利用pygame模块实现雪花飘落的效果吧,总共都用不到40行代码就可以实现哦,希望对你们有所帮助 第一步:我们先打开我们的pycharm软件,然后新建一个Python文件 第二步:建立好文件之后,我们在编辑页面输入以下代码: import pygame import sys #导入模块 im

  • 基于Python实现人像雪景小程序

    目录 导语 ​正文 1)素材环境(仅部分) 2)运行环境 3)代码演示 4)效果展示 导语 哈喽~大家早上好鸭! 冷空气来袭,不少地方一夜入冬,南方地区除了冷就是雨,而北方除了冷还有雪. 就说下雪这件事吧,其实南北都特别期待.诗意的白色世界.戏剧般的氛围,容易让人情不自禁地 沉溺其中. 继上一期的[故宫,下雪了]一夜醒来,故宫完成秋冬交接,来自北方的故事纷纷踏雪而来后,小伙伴们都墙裂要求雪景少不了,还需要人物自拍美美的照片! 所以今天我们就来啦,码住这份攻略,雪景最美~​ ​(其实吧:我们这边城

  • 基于python tkinter的点名小程序功能的实例代码

    代码如下所示: import datetime import json import os import random import tkinter as tk import openpyxl # 花名册文件名 excel_file_path = "花名册.xlsx"#需在当前目录创建对应花名册.xlsx # 工作表名 excel_sheet = "Sheet1" # 记录存储文件名 file_path = "name_record.json"

  • 基于Python实现自动抠图小程序

    目录 导语 正文 1.前期准备 1.1 首先 1.2 网站小介绍 2.正式抠图 2.1 环境安装 2.2 素材(可自选) 2.3 主程序代码 3.效果图 3.1 界面展示 ​3.2 图片展示 总结 导语 大家好!我是木木子,今天天气不是很好,下雨了,让我没点儿写文章的动力啊~ 写程序:一天到晚没事做,一行代码改一天,从白天学完天黑! 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,那就…… 今天教你用Python制作一款

  • 基于Python制作天眼查小程序的示例代码

    目录 界面搭建 整体布局 界面美化 天眼查爬虫 获取信息 代码编写 结果展示 今天我们一起来制作一个天眼查GUI程序,开宗明义,我们先来看下最终的效果 这次的GUI程序,我们使用的框架是PyQt5,该框架拥有比tkinter更为丰富的内置组件,在界面美化方面,貌似也更胜一筹! 从上图也可以看出,我们的目标还是蛮远大的,最终我们希望可以完成一个工具集合,把我们日常当中常用的功能都集成的该GUI程序中,比如天眼查公司信息,知乎用户知识图谱,B视频弹幕抓取等等. 好了,今天我们先完成天眼查的功能吧~

  • 基于python实现高速视频传输程序

    今天要说的是一个高速视频流的采集和传输的问题,我不是研究这一块的,没有使用什么算法,仅仅是兴趣导致我很想搞懂这个问题. 1,首先是视频数据[摄像头图像]的采集,通常可以使用vfw在vc或者vb下实现,这个库我用的不好,所以一直不怎么会用.现在我们用到的是python的videocapture库,这个库用起来很简单,如下: from VideoCapture import Device cam = Device() cam.setResolution(320,240) #设置显示分辨率 cam.s

  • 基于Python实现商场抽奖小系统

    目录 导语 一.运行环境 二.素材(图片等) 三.代码展示 ​四.效果展示 导语 嘿!下午好,木子来上新啦~ 期待今天的内容嘛?挠头.jpg 日常等更新的小可爱们我来了.看看给大家带来了什么好东西 我是华丽的分隔符 今天早上出门了一趟,话说长沙的天气用一个字形容就是:”热“.二个字形容:”真热“.三个字形容:”热死人“,据说这几天的温度快达到40°了.大家记得做好防晒哦~ 一出门就感受到了太阳的拥抱,泪流满面的做完事情之后跑到商场喝了杯茶颜,然后逛着街吹着免费的空调,巴适的很啊!逛商场的时候看到

  • 基于Python实现贪吃蛇小游戏(附源码)

    目录 前言 主要设计 应用知识点 1.python知识点 2.pygamezero知识点 功能截图 代码实现 1.蛇的表示 2.蛇的前进移动 3.控制移动方向 4.游戏失败 5.食物的随机出现 6.游戏得分 源码 总结 前言 这几年人工智能技术大发展,Python因此几乎成了第一位的语言.实际上,多年来,它不仅在软件工程师中得到广泛使用,也是各行业通用的专家语言,就是说,不管孩子以后做什么,都可能用得着.准备针对我自己上小学的孩子,每周抽出些时间,通过学习他们感兴趣的小游戏,逐步把python知

  • 基于angular实现模拟微信小程序swiper组件

    这段时间的主业是完成一个家政类小程序,终于是过审核发布了.不得不说微信的这个小程序生态还是颇有想法的,抛开他现有的一些问题不说,其提供的组件系统乍一看还是蛮酷的.比如其提供的一个叫swiper的视图组件,就可以在写界面的时候省不少时间和代码,轮播图片跟可滑动列表都可以用.导致现在回来写angular项目时也想整一个这样的组件出来,本文就将使用angular的组件能力和服务能力完成这么一个比较通用,耦合度较低的swiper出来. 首先要选择使用的技术,要实现的是与界面打交道的东西,自然是实现成一个

  • python 提取文件的小程序

    以前提取这些文件用的是一同事些的批处理文件:用起来不怎么顺手,刚好最近在学些python,所有就自己动手写了一个python提取文件的小程序:1.原理 提取文件的原理很简单,就是到一个指定的目录,找出最后修改时间大于给定时间的文件,然后将他们复制到目标目录,目标目录的结构必须和原始目录一致,这样工程人员拿到后就可以直接覆盖整个目录: 2.实现 为了程序的通用,我定义了下面的配置文件 config.xml 复制代码 代码如下: <?xml version="1.0" encodin

  • 基于Python的Android图形解锁程序详解

    安卓手机的图形锁是3x3的点阵,按次序连接数个点从而达到锁定/解锁的功能.最少需要连接4个点,最多能连接9个点.网上也有暴力删除手机图形锁的方法,即直接干掉图形锁功能.但假如你想进入别人的手机,但又不想引起其警觉的话--你可以参考一下本文(前提条件:手机需要root,而且打开调试模式.一般来讲,如果用过诸如"豌豆荚手机助手"."360手机助手"一类的软件,都会被要求打开调试模式的.如果要删除手机内置软件,则需要将手机root). 首先科普一下,安卓手机是如何标记这9

随机推荐