Python 使用PIL.Image制作运动小人的动态图思路详解

准备材料:

图片img.png 大小:804x165

制作思路:

把图片拆分成12等分,每帧大小:67x165;连续读取和播放就会形成动态图像。

源代码:

import tkinter as tk
from PIL import Image,ImageTk
from time import sleep

flag = False

def pause():
    global flag
    flag = not flag
    while flag:
        doing()

def doing():
    global flag
    while flag:
        for i in range(12):
            if not flag:break
            box = f_out.crop((i*67,0,i*67+67,164))
            img = ImageTk.PhotoImage(image=box)
            gif = cv.create_image(180,135,image=img)
            cv.update()
            sleep(0.2)

root = tk.Tk()
root.geometry('400x320')
cv = tk.Canvas(root, width=350, height=260, bg='lightgray')
cv.pack()
f_in = 'd:\\img.png'
f_out = Image.open(f_in)

box = f_out.crop((0,0,67,164))
img = ImageTk.PhotoImage(image=box)
gif = cv.create_image(180,135,image=img)

tk.Button(root,command=pause,text='动作/停止').place(x=170,y=275)

root.mainloop()

运行效果:

到此这篇关于Python 使用PIL.Image制作一个运动小人的动态图的文章就介绍到这了,更多相关Python PIL.Image动态图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图

    因为最近在做深度学习抠图,正好要用到蒙版进行抠图,所以我将抠图代码进行了封装注释,可以直接使用.可能走了弯路,若有高见请一定提出! 主要代码 import cv2 from PIL import Image import numpy as np class UnsupportedFormat(Exception): def __init__(self, input_type): self.t = input_type def __str__(self): return "不支持'{}'模式的转换

  • Python 实现OpenCV格式和PIL.Image格式互转

    OpenCV转换成PIL.Image格式: import cv2 from PIL import Image import numpy img = cv2.imread("plane.jpg") cv2.imshow("OpenCV",img) image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB)) image.show() cv2.waitKey() PIL.Image转换成OpenCV格式: im

  • python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    在处理图像的时候经常是读取图片以后把图片转换为灰度图.作为一个刚入坑的小白,我在这篇博客记录了四种处理的方法. 首先导入包: import numpy as np import cv2 import tensorflow as tf from PIL import Image 方法一:在使用OpenCV读取图片的同时将图片转换为灰度图: img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE) print("cv2.imread(imgfile, cv2.I

  • Python 使用PIL.Image制作运动小人的动态图思路详解

    准备材料: 图片img.png 大小:804x165 制作思路: 把图片拆分成12等分,每帧大小:67x165:连续读取和播放就会形成动态图像. 源代码: import tkinter as tk from PIL import Image,ImageTk from time import sleep flag = False def pause(): global flag flag = not flag while flag: doing() def doing(): global flag

  • python编写微信公众号首图思路详解

    前言 之前一直在美图秀秀调整自己的微信公众号首图,效果也不尽如人意,老是调来调去,最后发出来的图片被裁剪了一大部分,丢失部分关键信息,十分恼火,于是想着用python写一个程序,把微信公众号首图的模式固定下来,方便以后写公众号. 思路 根据微信公众号首图要求,可以上传一个不超过5M的图片,且图片尺寸要是2.35:1的尺寸,换算成像素是900:383,有了这些参数就可以做文章了,这里有两种思路 把今天推文的标题(文字)用图片展示出来,使得文字排列错落有致,简单粗暴,而又不失美感,这里可以利用mat

  • 用Python从0开始实现一个中文拼音输入法的思路详解

    众所周知,中文输入法是一个历史悠久的问题,但也实在是个繁琐的活,不知道这是不是网上很少有人分享中文拼音输入法的原因,接着这次NLP Project的机会,我觉得实现一发中文拼音输入法,看看水有多深,结果发现还挺深的,但是基本效果还是能出来的,而且看别的组都做得挺好的,这次就分 享一下我们做的结果吧. (注:此文假设读者已经具备一些隐马尔可夫模型的知识) 任务描述 实现一个中文拼音输入法. 经过分析,分为以下几个模块来对中文拼音输入法进行实现: 核心功能包括拼音切分(SplitPinyin.py)

  • Python实现K-means聚类算法并可视化生成动图步骤详解

    K-means算法介绍 简单来说,K-means算法是一种无监督算法,不需要事先对数据集打上标签,即ground-truth,也可以对数据集进行分类,并且可以指定类别数目 牧师-村民模型 K-means 有一个著名的解释:牧师-村民模型: 有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告给了郊区所有的村民,于是每个村民到离自己家最近的布道点去听课. 听课之后,大家觉得距离太远了,于是每个牧师统计了一下自己的课上所有的村民的地址,搬到了所有地址的中心地带,并且在海

  • 用Python制作灯光秀短视频的思路详解

    一.引言 2021年4月8日武汉重启一周年,这是个值得庆祝的日子,作为一个武汉人和一个死宅程序员,老猿也想在这个日子留下点什么.想起武汉长江两岸的灯光秀,顿时有了主意,那就用程序实现一个武汉重启庆祝的灯光秀短视频吧,于是在4月7日晚开始构思和着手开发,4月8日晚终于顺利完成,并且通过使用OpenCV.OpenCV+Moviepy两种方式进行了实现. 本文介绍结合Python+OpenCV+Moviepy实现的思路和过程,Python+OpenCV实现的思路和过程将在另外的博文中单独介绍. 二.实

  • 利用Python实现字幕挂载(把字幕文件与视频合并)思路详解

    其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是很老的就行) pip(这个其实python版本>2.8.9或者>3.4的都自带了),可以通过cmd命令pip -V查询是否安装了,没有的话就输入命令 需要用到的工具: 我用的是pycharm,用来写python代码的. Flie->setting->Project:Test->p

  • Python获取好友地区分布及好友性别分布情况代码详解

    利用Python + wxpy 可以快速的查询自己好友的地区分布情况,以及好友的性别分布数量.还可以批量下载好友的头像,拼接成大图. 本次教程是基于上次机器人后的,所有依赖模块都可以复用上次的,还不知道的小伙伴可以戳这里. python + wxpy 机器人 准备工作 编辑器 一个注册一年以上的微信号 公共部分代码 from wxpy import * // wxpy 依赖 from PIL import Image // 二维码登录依赖 import os // 本地下载依赖 import m

  • python发qq消息轰炸虐狗好友思路详解(完整代码)

    因为我的某个好友在情人节的时候秀恩爱,所以我灵光一闪制作了qq消息轰炸并记录了下来. 首先 我的编程环境是: windows 10系统 python3.6 记得要下载win32 pip install win32 思路介绍 其实也非常简单 将要发出去的句子储存在列表中 然后用随机模块调用 将随机出来的元素储存在剪贴板中 连接QQ 找到指定对象 疯狂输出 怎么样,简单吧 开始打代码吧 import random import win32gui as a import win32con as b i

  • Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)

    准备工作 B站登录页 https://passport.bilibili.com/login python3 pip install selenium (webdriver框架) pip install PIL (图片处理) chrome driver:http://chromedriver.storage.googleapis.com/index.html firefox driver:https://github.com/mozilla/geckodriver/releases B站的滑块验

  • Python爬虫+tkinter界面实现历史天气查询的思路详解

    今天给大家分享用Python 爬虫+tkinter界面来实现历史天气查询. 一.实现效果 运行效果 运行效果如下: 二.基本思路 导入用到的库 import requests from lxml import etree import re import tkinter as tk from PIL import Image, ImageTk from xpinyin import Pinyin 1. 爬虫部分 目标url:https://lishi.tianqi.com/ 该网站提供了全国34

随机推荐