文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

下面实现内容:

程序的端口是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实现二次元图片展示内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯