python实现二次元图片展示(屏保)

 更新时间:2022年02月07日 08:56:33   作者:潘道熹   
这篇文章主要介绍了python实现二次元图片展示,用了API端口相关的知识实现,下面详细的文章内容需要的小伙伴可以参考一下

下面实现内容:

程序的端口是https://www.dmoe.cc/random.php,也是这位谪仙人给的。需要一个参数:return=json。说明文档见:https://www.dmoe.cc/random.php

卷 Data 的文件夹 PATH 列表
卷序列号为 90AF-CB35
D:.
│  图片展示.py

└─temp

直接敲程序,还需要一个名为temp的文件夹。
请提前安装requestspygame模块。

首先放出备用程序:

from requests import get
from json import dumps
from random import randint
import pygame
from pygame.locals import * 

url = 'https://www.dmoe.cc/random.php'
params = {'return':'json'}
response = get(url,params).json()
width,height,img = int(response['width']),int(response['height']),response['imgurl']

content = get(img)
number = randint(100000,999999)
with open('temp/%d.jpg' % number,'wb') as f:
    f.write(content.content)

pygame.init()
canvas = pygame.display.set_mode((width,height))
canvas.fill((255,255,255))
pygame.display.set_caption('Show')

def handle():
    for event in pygame.event.get():
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            pygame.quit()
            exit()
    
background = pygame.image.load('temp/%d.jpg' % number)    
while True:
    canvas.blit(background,(0,0))
    handle()
    pygame.display.update()

Okay,这里就不展示了,就是一个简单的屏保效果,关闭请ESC键。

再放出真实程序:

小歪API,https://api.ixiaowai.cn/api/api.php,直接发get请求即可,可以用Postman/APIfox调试。

from requests import get
from json import dumps
from random import randint
import pygame
from pygame.locals import * 

content = get('https://api.ixiaowai.cn/api/api.php')
number = randint(100000,999999)
with open('temp/%d.jpg' % number,'wb') as f:
    f.write(content.content)

pygame.init()
canvas = pygame.display.set_mode((1920,1080))
canvas.fill((255,255,255))
pygame.display.set_caption('Show')

def handle():
    for event in pygame.event.get():
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            pygame.quit()
            exit()
    
background = pygame.image.load('temp/%d.jpg' % number)    
while True:
    canvas.blit(background,(0,0))
    handle()
    pygame.display.update()

更新:

想要会变化的?这里:

from requests import get
from json import dumps
from random import randint
import pygame
from pygame.locals import * 

#创建pygame窗口
pygame.init()
canvas = pygame.display.set_mode((1920,1080))
canvas.fill((255,255,255))
pygame.display.set_caption('Show')

#事件处理
def handle():
    for event in pygame.event.get():
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            pygame.quit()
            exit()
      
while True:
    #下载图片
    content = get('https://api.ixiaowai.cn/api/api.php')
    number = randint(100000,999999)
    with open('temp/%d.jpg' % number,'wb') as f:
        f.write(content.content)
    #装填图片
    background = pygame.image.load('temp/%d.jpg' % number)  
    canvas.blit(background,(0,0))
    #设置窗口
    handle()
    pygame.display.update()
    pygame.time.delay(5000) #秒数是多少,就写几千秒,这是五秒一换

图片下载器:

from requests import get  # get请求方法
from json import dumps  # json序列处理
from random import randint  # 随机数
from os.path import exists  # 检测文件夹是否存在
from os import mkdir  # 创建文件夹

# 下载的爬虫
def download(path):
    url = "https://api.ixiaowai.cn/api/api.php"  # 请求URL
    content = get(url)  # 发送网络请求
    number = randint(100000, 999999)  # 生成随机数
    print("保存图片 >>> ./%s/%d.jpg" % (path, number))  # 输出保存信息
    with open("%s/%d.jpg" % (path, number), "wb") as f:  # 保存图片信息
        f.write(content.content)

# 主函数
def main(path):
    # 下载
    for i in range(1, int(input("您需要多少张图片 >>> ")) + 1):
        download(path)
    # 保留解释器窗口
    input("下载完成。")

# 保存路径的程序
if __name__ == "__main__":
    try:  # 包含异常
        folder = input("您需要将图片保存到哪里(输入相对路径) >>> ")
        if exists(folder):  # 有这个文件夹就直接保存
            main(folder)  # 下载
        else:  # 如果没有这个文件夹
            mkdir(folder)  # 创建文件夹
            main(folder)  # 下载
    except Exception as e:  # 提取异常基类
        print("ERROR:%s" % e)  # 输出异常

到此这篇关于python实现二次元图片展示(屏保)的文章就介绍到这了,更多相关python实现二次元图片展示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python经典练习百题之猴子吃桃三种解法

    python经典练习百题之猴子吃桃三种解法

    这篇文章主要给大家介绍了关于python经典练习百题之猴子吃桃三种解法的相关资料, Python猴子吃桃子编程是一个趣味性十足的编程练习,在这个练习中,我们将要使用Python语言来模拟一只猴子吃桃子的过程,需要的朋友可以参考下
    2023-10-10
  • Python类中方法getitem和getattr详解

    Python类中方法getitem和getattr详解

    这篇文章主要介绍了Python类中方法getitem和getattr详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python Django 反向访问器的外键冲突解决

    python Django 反向访问器的外键冲突解决

    这篇文章主要介绍了python Django 反向访问器的外键冲突解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python分布式爬虫中消息队列知识点详解

    python分布式爬虫中消息队列知识点详解

    在本篇文章里小编给大家整理的是python分布式爬虫中消息队列知识点详解内容,有兴趣的朋友们可以参考下。
    2020-11-11
  • python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现

    python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现

    本文主要介绍了python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python 最大概率法进行汉语切分的方法

    Python 最大概率法进行汉语切分的方法

    今天小编就为大家分享一篇Python 最大概率法进行汉语切分的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python for循环详细讲解(附代码实例)

    Python for循环详细讲解(附代码实例)

    这篇文章主要给大家介绍了关于Python for循环详细讲解的相关资料,在Python中,for循环是一种常用的控制结构,用于遍历序列(如列表、元组、字符串等)中的元素,需要的朋友可以参考下
    2024-03-03
  • Python 实现数据结构-循环队列的操作方法

    Python 实现数据结构-循环队列的操作方法

    这篇文章主要介绍了Python 实现数据结构-循环队列的操作方法,需要的朋友可以参考下
    2019-07-07
  • python基于Tkinter库实现简单文本编辑器实例

    python基于Tkinter库实现简单文本编辑器实例

    这篇文章主要介绍了python基于Tkinter库实现简单文本编辑器,实例分析了Python使用Tkinter库实现简单桌面应用程序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • Python 字符串转换为整形和浮点类型的方法

    Python 字符串转换为整形和浮点类型的方法

    今天小编就为大家分享一篇Python 字符串转换为整形和浮点类型的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论