金龟子图片查看器turtle版源代码

金龟子图片查看器turtle版源代码

python turtle ladybug scarab picture viewer金龟子图像查看器

python turtle ladybug scarab picture viewer金龟子图像查看器

python turtle ladybug scarab picture viewer金龟子图像查看器


用Python的海龟画图模块当然可以制作图片查看器的。
以下是部分代码预览:

"""
   金龟子图片查看器.py
   用python的海龟画图制作的图片查看器,支持查看png/bmp/jpg等,还能看gif动画,
   这是一个雏形程序,还不是很完善,方便学习原理。
   可以把源码转换成exe程序,然后让这个exe程序和jpg,png,gif等产生关联,
   这样双击图片就能使用自制的图像查看器看图了。
   源程序打包方法pyinstaller -F 图片查看器.pyw
   
"""
import os
import sys
from turtle import Turtle,Screen,Shape
from PIL import Image,ImageTk, ImageSequence

class Viewer:
    """查看器"""
    def __init__(self,image):
       # 下面可以进行扩展名检测,把不是图片的排除...
       ext = os.path.splitext(image)[-1].lower()
       if ext == '.gif':
           self.isgif = True
           self.frames = []           
           im = Image.open(image)
           # 以下是拆帧
           for frame in ImageSequence.Iterator(im):
                new = Image.new("RGB",im.size,(255,0,0))
                new.paste(frame,(0,0))
                self.frames.append(new)
       else:
           im = Image.open(image)
           self.frames = [im]
           self.isgif = False
       
       self.screen = Screen()    # 新建屏幕
       self.screen.bgcolor(0.2,0.3,0.5)
       self.screen.title(image)  # 标题显示图像路径
       pass       
       self.turtle = Turtle(visible=False)
       self.turtle.penup()
       self.turtle.sety(50)
       self.turtle.color('gray')
       ft = ('楷体',32,'normal')
       self.turtle.write("金龟子图像查看器",align='center',font=ft)
       
       self.turtle.sety(-150)
       self.turtle.color('cyan')
       ft = ('黑体',12,'normal')
       self.turtle.write("www.lixingqiu.com",align='center',font=ft)
       
       self.turtle.home()
       # 注册所有造型到形状字典中
       [self.screen.addshape(str(i),self.shapes[i]) for i in range(len(self.shapes))]
       self.turtle.st()
       self.play()       
       self.scale = 1           # 原始比例为1
       self.screen.cv.bind_all("",self.on_mousewheel)
       self.screen.mainloop()
       
    def play(self):
      """显示静态或动态图片"""
      self.turtle.shape(str(self.index))
      self.screen.update()
      self.index += 1
      self.index %= self.amounts      
      if self.isgif : self.screen.ontimer(self.play,100)

    def on_mousewheel(self,event):
        """鼠标滚动事件,以后可以增加图片缩放功能"""
        self.scale += event.delta/1200        
        print(self.scale)

    pass

如需要下载完整源代码及素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。