用python获取实时地球图像作为壁纸(windows)

news/2024/12/29 14:18:42/

这个是gitbub上的一个开源的python小项目,获取气象卫星拍下的实时的地球图片,作为电脑壁纸。
2020-4-16 17:40:00时我们的地球
2020-4-17 9:10:00时我们的地球
2020-4-17 14:30:00时我们的地球
在太空,有一颗日本人发射的气象卫星——向日葵8号,我们的地球图片就来自她的镜头
基本思路是这样,弄清楚她提供的接口,然后转换一下时间,把图片下载下来,然后保存本地,修改为壁纸,大功告成
接口返回的图片是一块一块的感觉,每个块550 * 550像素,你可以请求4个块,每个块550 * 550,那么就会得到一个1100 * 1100分辨率的图片,同样,你可以请求16个块,就可以得到一个2200 * 2200分辨率的地球图片
代码如下

#coding=utf-8
import time
import sys
import json
import requests
from PIL import Image
from io import BytesIO
from datetime import datetime
from dateutil import tz
import win32api, win32con, win32gui
import os#这是图片的接口
conf = {
'last_refresh_url': 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json',
'img_url_pattern': 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/%id/550/%s_%i_%i.png',
'scale': 1,
}def get_last_time():r = requests.get(conf['last_refresh_url'])# print('r.text',r.text)resp = json.loads(r.text)# resp = r.text# print('resp type',type(resp),resp)last_refresh_time = datetime.strptime(resp['date'], '%Y-%m-%d %H:%M:%S')return last_refresh_time# 转换时间
def utf2local(utc):from_zone = tz.tzutc()to_zone = tz.tzlocal()utc = utc.replace(tzinfo=from_zone)return utc.astimezone(to_zone)def download(args):scale = args['scale']fpath = ''png = Image.new('RGB', (550 * scale, 550 * scale))#还记得我前面说下载图片是一块一块嘛,把大图片分成行列分别下载for row in range(scale):for col in range(scale):strtime = args['time'].strftime("%Y/%m/%d/%H%M%S")url = conf['img_url_pattern'] % (args['scale'], strtime, row, col)print('url',url)r = requests.get(url)tile = Image.open(BytesIO(r.content))png.paste(tile, (550 * row, 550 * col, 550 * (row + 1), 550 * (col + 1)))if 'fout' in args:fpath = args['fout']else:fpath = "%s.bmp" % utf2local(args['time']).strftime("%Y/-%m/-%d/ %H.%M.%S").replace('/', '')png.save(fpath, "BMP")print('下载完成, 保存图片为 %s' % fpath)print('fpath',fpath)setWallPaper(fpath)#我默认scale=4了,这样的图片是2200*2200分辨率,现在大家的电脑普遍都1920*1080了吧
def get_last_image(fout=None, scale=4):last_refresh_time = get_last_time()args = {'time': last_refresh_time}args['scale'] = scaleif fout is not None:args['fout'] = foutdownload(args)pass#setWallpaperFromBMP 和 setWallPaper用于修改电脑壁纸
def setWallpaperFromBMP(imagepath):k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "6") #2拉伸,0居中,6适应win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)def setWallPaper(imagePath):current_file_path = os.path.dirname(os.path.abspath(__file__))print(current_file_path)bmpImage = Image.open(imagePath)newPath = current_file_path + '\\nowimage.bmp'bmpImage.save(newPath, "BMP")setWallpaperFromBMP(newPath)def run(inc):while True:print('下载中......' )if len(sys.argv) == 1:get_last_image()elif len(sys.argv) == 2:get_last_image(fout=sys.argv[1])elif len(sys.argv) == 3:get_last_image(fout=sys.argv[1], scale=int(sys.argv[2]))print('over')time.sleep(inc)if __name__ == '__main__':#你可以传入参数#第一个参数是图片的保存位置#第二个参数影响图片分辨率,1->550*550 2->1100*1100 4->2200*2200run(600)#10分钟执行一次

地球就在那里没日没夜的运动(静止)宇宙如此深邃,黑暗,迷。什么才是我们存在的意义?


http://www.ppmy.cn/news/335317.html

相关文章

linux上的壁纸软件下载,Ubuntu 17.10上安装开源壁纸工具Wallch 4.0

在Ubuntu 17.04上安装Wallch Wallch是一款免费的开源通用壁纸更换器,用户可以在设置的时间更改桌面背景图片。它会在桌面上更改并显示随机图片或维基百科的当天图片。它还具有一个实时地球Living Earth壁纸,每30分钟更换桌面背景,以显示阳光和…

python写一个地球同步卫星图动态壁纸(第二部分)

———————————————————————————————— 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部分) 第一部分主要是下载地球同步卫星图片…

【Python】定时获取卫星地球图像作为电脑壁纸

虽然网上关于这个的教程不少,但是写在这里,就当作自己的学习记录吧。 开发工具:Python 3.7 环境:win10 图像来源:日本himawari-8气象卫星官网 思路:利用爬虫从官网抓取图像,然后设置为电脑壁…

python写一个地球同步卫星图动态壁纸(第三部分)

———————————————————————————————— 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部分) 第一部分主要是下载地球同步卫星图片…

为你的 Linux 桌面设置一张实时的地球照片

厌倦了看同样的桌面背景了么?这里有一个(可能是)世界上最棒的东西。 ‘Himawaripy’ 是一个 Python 3 小脚本,它会抓取由日本 Himawari 8 气象卫星拍摄的接近实时的地球照片,并将它设置成你的桌面背景。 安装完成后,你可以将它设置成每 10 分…

android 3d地球,动态3D我的地球app

动态3D我的地球app是一款非常不错的3D立体视觉动态壁纸软件,喜欢科幻风格的小伙伴们可以使用该软件设置属于自己的地球壁纸,支持不同视觉效果,动态的地球,从月球看地球等,手指滑动屏幕可以转动角度,喜欢的可…

【Python】自制地球壁纸软件

关于如何获取并设置卫星地球壁纸请参考上一篇文章【Python】定时获取卫星地球图像作为电脑壁纸 本文主要讲解如何开发GUI界面并打包为exe程序发布。 开发环境:Python3 主要模块:PyQt5和pyinstaller 使用平台: win10 不多说,上代…

python做壁纸_用Python做地球壁纸

本文主要讲解如何开发GUI界面并打包为exe程序发布。 开发环境:Python3 主要模块:PyQt5和pyinstaller 使用平台: win10 不多说,上代码: import sys, os if hasattr(sys, frozen): os.environ[PATH] sys._MEIPASS &quo…