IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 利用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码) -> 正文阅读

[Python知识库]利用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)

前言

利用python模拟了刮开刮刮卡效果,让我们愉快地开始吧~

在这里插入图片描述

效果展示

在这里插入图片描述

开发工具

Python版本: 3.6.4

相关模块:

pygame模块;

以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

原理其实很简单。首先从文件夹中随机读取一张图片:

def readImageRandomly():
    filenames = os.listdir(IMAGEDIR)
    filenames = [f for f in filenames if f.split('.')[-1] in SUPPORTEXTS]
    imgpath = os.path.join(IMAGEDIR, random.choice(filenames))
    return pygame.transform.scale(pygame.image.load(imgpath), SCREENSIZE)

然后将图片绑定到pygame的屏幕上:

screen.blit(image_used, (0, 0))

接着定义一个surface,并设置为灰色,覆盖在图片上,这样图片一开始是看不到的:

surface = pygame.Surface(SCREENSIZE).convert_alpha()
surface.fill(GRAY)
screen.blit(surface, (0, 0))

当检测到我们按下鼠标左键并在屏幕内划过时,将划过鼠标的那片surface区域设置为透明的白色,从而使得其下方的图片可见:

mouse_event_flags = pygame.mouse.get_pressed()
if mouse_event_flags[0]:
    pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
elif mouse_event_flags[-1]:
    surface.fill(GRAY)
    image_used = readImageRandomly()

当然,为了方便切换图片,我们加了一个点击鼠标右键可以随机重新载入一张图片的功能。组织一下代码,使它可以正常运行:

def main():
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load(BGMPATH)
    pygame.mixer.music.play(-1, 0.0)
    pygame.mouse.set_cursor(*pygame.cursors.diamond)
    screen = pygame.display.set_mode(SCREENSIZE)
    pygame.display.set_caption('刮刮乐——卫星:ilove-python')
    surface = pygame.Surface(SCREENSIZE).convert_alpha()
    surface.fill(GRAY)
    image_used = readImageRandomly()  
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit(-1)
        mouse_event_flags = pygame.mouse.get_pressed()
        if mouse_event_flags[0]:
            pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
        elif mouse_event_flags[-1]:
            surface.fill(GRAY)
        image_used = readImageRandomly()
        screen.blit(image_used, (0, 0))
        screen.blit(surface, (0, 0))
        pygame.display.update()

文章到这里就结束了,感谢你的观看,Python图像特效,下个分享Python实现抖音晃眼睛特效。

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

All done~私信获取完整源代码。。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:52:42  更:2021-09-01 11:52:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:04:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码