python写一个地球同步卫星图动态壁纸(第二部分)
生活随笔
收集整理的這篇文章主要介紹了
python写一个地球同步卫星图动态壁纸(第二部分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
————————————————————————————————
前序:
系統:Windows 10
IDE:PyCharm
Python:3.7.4
python寫一個地球同步衛星圖動態壁紙(第一部分)
第一部分主要是下載地球同步衛星圖片到本地
第一部分: https://blog.csdn.net/L141210113/article/details/102624596
第三部分: https://blog.csdn.net/L141210113/article/details/102703475
————————————————————————————————
成品樣例(是24小時連續變化的,我只截取中午和晚上的進行展示):
一、修改圖片
1. 去除風云四號衛星圖水印
說明: 上次我們獲取了如下圖片,但是我們發現圖片并不完美,它的左上角與右下角有水印,我們可以通過重繪去除水印
注: 重繪的區域要多進行測試
整理之后
2. 拓展圖片尺寸
說明: 由于圖片是正方形,不適合作為壁紙,我們將其修改為屏幕尺寸
# path,圖片路徑 screen_w分辨率寬, screen_h高, earth地球尺寸,這個尺寸是整體相對于屏幕的縮放 def redraw_left_right(path, screen_w, screen_h, earth):# sizeimage1 = Image.new("RGB", (screen_w, screen_h))image2 = Image.open(path)image2 = image2.resize((earth, earth), )# image.thumbnail(size)bw, bh = image1.sizelw, lh = image2.sizeimage1.paste(image2, (int((bw - lw) / 2), int((bh - lh) / 2)))newpath = os.path.dirname(path) + '/final' + os.path.splitext(path)[1]image1.save(newpath, "PNG")return newpath拓展之后
二、整理之后的完整代碼
from PIL import Image import os'''去除左上角水印''' def redraw_upper_left(path, earth_w, earth_h):# size = 1920, 1080image1 = Image.new("RGB", (int(230 * earth_w / 1080), int(80 * earth_h / 1080)))image2 = Image.open(path)image2 = image2.resize((earth_w, earth_h), )image2.paste(image1, (0, 0))newpath = os.path.dirname(path) + '/upper_left' + os.path.splitext(path)[1]image2.save(newpath, "JPEG")return newpath'''去除右下角水印''' def redraw_bottom_right(path, earth_w, earth_h):# size = 1920, 1080image1 = Image.new("RGB", (int(80 * earth_w / 1080), int(80 * earth_h / 1080)))image2 = Image.open(path)image2 = image2.resize((earth_w, earth_h), )# image.thumbnail(size)bw, bh = image1.sizelw, lh = image2.sizeimage2.paste(image1, (lw - bw, lh - bh))newpath = os.path.dirname(path) + '/bottom_right' + os.path.splitext(path)[1]image2.save(newpath, "JPEG")return newpathdef redraw_left_right(path, screen_w, screen_h, earth):# sizeimage1 = Image.new("RGB", (screen_w, screen_h))image2 = Image.open(path)image2 = image2.resize((earth, earth), )# image.thumbnail(size)bw, bh = image1.sizelw, lh = image2.sizeimage1.paste(image2, (int((bw - lw) / 2), int((bh - lh) / 2)))newpath = os.path.dirname(path) + '/final' + os.path.splitext(path)[1]image1.save(newpath, "PNG")return newpathdef changePic(flag = '1'):path = './pic/cache_wallpaper.jpg'size = {'1' : 1, '2' : 0.75, '3' : 0.5}w = int(input("設置壁紙分辨率寬為:"))h = int(input("設置壁紙分辨率高為:"))flag = input("設置地球大小為(1:大,2:中,3:小):")min = h if h < w else wmax = w + h - minearth = int(min * size[flag])new_path = redraw_upper_left(path, earth, earth)new_path = redraw_bottom_right(new_path, earth, earth)new_path = redraw_left_right(new_path, max, min, earth)return new_pathif __name__ == '__main__':changePic()注:
好了,第二個模塊,修改圖像就寫好了,接下來還有設置壁紙模塊。
總結
以上是生活随笔為你收集整理的python写一个地球同步卫星图动态壁纸(第二部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 赌Impinj就是赌RFID行业
- 下一篇: 女友电脑私存思聪帅照,我用python偷