python多媒体制作的新年贺卡使用的是turtle和image模块

""" 065_新年快乐动态音乐贺卡.py
   本程序使用python3.4,需要准备枕头模块(PIL在python3中已更名为pillow模块)
   制作日期:2017年元月17日
   作者:李兴球,本源代码下载网址:
   http://www.HaLiFa.net/download/heka.rar
"""


from winsound import PlaySound,SND_ASYNC
from turtle import *
from time import sleep
from random import randint


from PIL import Image, ImageSequence
import time
图像 = Image.open('新年快乐.gif')  #载入图片
w,h=图像.size
#ImageSequence.Iterator(图象) 能返回图形中的每一帧。


index = 1
图形列表=[]


for frame in ImageSequence.Iterator(图像):  #对于图形中的每一帧
    文件名="新年快乐" + str(index) + ".png"
    frame.save(文件名)
    图形列表.append(文件名)
    index += 1


print( "拆分gif完毕!共拆成了" + str(index-1) + "张图片")


小虹=Turtle()
小虹.pencolor("white")
小虹.penup()
小虹.speed(0)
小虹.hideturtle()
屏幕=小虹.getscreen()    #得到小虹所在的画图屏幕,get是得到的意思,screen是屏幕的意思。
屏幕.setup(w,h)
屏幕.title("星空培训Python少儿编程动态音乐贺卡制作。")


屏幕.bgcolor((0,0,51))
for i in range(30):
    小虹.goto(randint(-300,250),randint(-150,150))
    小虹.dot(randint(1,3))


小虹.color("cyan")
小虹.goto(-150,100)
for 字 in '星空培训':
    小虹.write(字,font=("微软雅黑",44,"normal"))
    sleep(0.3)
    小虹.setx(小虹.xcor()+80)


小虹.color("yellow")
小虹.goto(-280,0)
for 字 in '祝大家鸡年快乐,金鸡独立,独占鳌头!':
    小虹.write(字,font=("",20,"normal"))
    sleep(0.2)
    小虹.setx(小虹.xcor()+30)




小虹.color("white")
小虹.goto(-200,-50)
for 字 in '制作日期:2017年元旦! 作者:李兴球':
    小虹.write(字,font=("",10,"normal"))
    sleep(0.1)
    小虹.setx(小虹.xcor()+20)




小虹.color("yellow")
小虹.goto(-250,-120)
for 字 in '本python程序源代码下载网址:':
    小虹.write(字,font=("",10,"normal"))
    sleep(0.1)
    小虹.setx(小虹.xcor()+15)




小虹.color("yellow")
小虹.goto(-250,-150)
网址="http://www.HaLiFa.net/download/heka.rar"
小虹.write(网址,font=("",10,"normal"))


#新建小明角色用来显示倒计时数字
小明=Turtle(visible=False)
小明.pencolor("yellow")
小明.goto(0,30)
倒数=5
for i in range(倒数,-1,-1):
    小明.clear()
    小明.write(i,align='center',font=("",50,"normal"))
    sleep(1)
    
小明.clear()
小虹.clear()




小虹.color("white")
指针=0
def 动态背景():
    global 指针
    屏幕.bgpic(图形列表[指针])
    指针=指针+1
    指针=指针 % 5
    屏幕.ontimer(动态背景,100)
    
动态背景()


小虹.goto(0,-230)
歌曲文件="中国娃娃 - 发财发福中国年.wav"
歌词文件="发财发福中国年歌词.lrc"
歌词列表=[]
歌词指针=0


f=open(歌词文件)
歌词=f.readlines()        #由于有换行,是多余的,所以下面要去除换行 \n
f.close()
歌词列表=[]
for 行 in 歌词:
    if 行!='\n':
        歌词列表.append(行)
  
歌词行数=len(歌词列表)
#print(歌词列表)
PlaySound(歌曲文件, SND_ASYNC) #异步播放音效


def 获取时间轴(指针):    
    songtime=歌词列表[指针]
    songtime=songtime.split("]")[0]
    songtime=songtime.split(":")
    songtimef=songtime[0][1:3]
    songtimef=int(songtimef)*60    
    songtimem=float(songtime[1])
    return int((songtimef+songtimem)*1000)


#for i in range(歌词行数):
   #print(获取时间轴(i))
print("歌词行数:" + str(歌词行数))


歌词指针=0
开始时间=time.time()
def 显示字幕():
    global 歌词指针
    global 歌词行数
    
    当前时间=time.time()
    运行时间=(当前时间-开始时间)*1000
    屏幕.title("星空培训Python少儿编程动态音乐贺卡制作。" + str(运行时间))
    if 获取时间轴(歌词指针)<运行时间:
        小虹.clear()
        显示歌词=歌词列表[歌词指针].split("]")[1]
        小虹.goto(0,-230)
        小虹.pencolor("black")
        小虹.write(显示歌词,align='center',font=("",24,"normal"))
        小虹.goto(-1,-229)
        小虹.pencolor("white")
        小虹.write(显示歌词,align='center',font=("",24,"normal"))
        
        print("当前歌词指针:" + str(歌词指针) + ",歌词:" + 显示歌词) 
        歌词指针=歌词指针+1
    if 歌词指针<歌词行数:        
        屏幕.ontimer(显示字幕,100)
        
显示字幕()











  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面我来介绍如何使用Python中的turtle模块和变量、颜色等来制作一个有趣的项目——彩虹螺旋。 1. 首先,我们需要导入turtle模块,并设置窗口的大小和背景颜色。 ```python import turtle turtle.setup(800, 600) turtle.bgcolor("black") ``` 2. 接下来,我们需要定义一些变量,用于控制彩虹螺旋的大小、颜色和速度等。例如: ```python size = 10 colors = ["red", "orange", "yellow", "green", "blue", "purple"] speed = 0 ``` 其中,size表示每个圆的半径大小,colors表示彩虹中每个颜色的顺序,speed表示绘制速度,0表示最快。 3. 接下来,我们需要编一个循环,来绘制彩虹螺旋。具体来说,我们需要循环绘制若干个圆形,每个圆形的大小和颜色都不同。例如: ```python for i in range(60): turtle.pencolor(colors[i % len(colors)]) turtle.circle(size) turtle.left(6) size = size + 1 turtle.speed(speed) ``` 在循环中,我们先设置画笔的颜色为当前彩虹中的一种颜色,然后绘制一个圆形,并向左旋转6度。接着,我们增加圆形的半径大小,以便实现彩虹螺旋的效果。最后,我们将绘制速度设置为最快。 4. 最后,我们需要调用turtle.done()方法,以便在窗口中显示彩虹螺旋。例如: ```python turtle.done() ``` 完整的代码如下所示: ```python import turtle turtle.setup(800, 600) turtle.bgcolor("black") size = 10 colors = ["red", "orange", "yellow", "green", "blue", "purple"] speed = 0 for i in range(60): turtle.pencolor(colors[i % len(colors)]) turtle.circle(size) turtle.left(6) size = size + 1 turtle.speed(speed) turtle.done() ``` 运行代码,就可以在窗口中看到一个美丽的彩虹螺旋了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李兴球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值