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

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

如需要下载完整源代码及素材,请扫码付款:

VIP免费查看

已有0人支付

扫码后加李兴球微信号:scratch8,获赠100Python创意程序及大量Scratch作品。 本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » 金龟子图片查看器turtle版源代码

学本领,探索更大的世界!

李兴球博客 风火轮编程主页