close

自從好久以前 [WIN10仿MAC] WinDynamicDesktop 自訂桌面教學  後

感覺桌布非常無聊,還是mac原生動態桌布資源最多

但mac的格式都是heif,根本不支援怎辦?

這時就可以用python套件來匯出成png格式,在使用json建立個別的時間變化參數


環境:

macOS 11.4

Anaconda3.8

Python3.8


特別提醒:Windows目前不支援此套件的使用喔

安裝之前,先確認一下有無安裝 Homebrew:

https://brew.sh/index_zh-tw

或複製此代碼安裝

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

接著在macOS的終端機打入以下安裝

conda
brew install libffi libheif
pip install git+https://github.com/david-poirier-csn/pyheif.git
pip install whatimage

 

如無法安裝就代表git網址變動,請參考pypl

https://pypi.org/project/pyheif/


附上程式碼:

import whatimage
import pyheif
import traceback
from PIL import Image

def decodeImage(bytesIo):
    try:
        fmt = whatimage.identify_image(bytesIo)
        # print('fmt = ', fmt)
        if fmt in ['heic']:
            i = pyheif.read_heif(bytesIo)
            #print('i.metadata = ', i.metadata)
            pi = Image.frombytes(mode=i.mode, size=i.size, data=i.data)
            # print('pi = ', pi)
            pi.save('heeh.png', format="png")
    except:
        traceback.print_exc()
def read_image_file_rb(file_path):
    with open(file_path, 'rb') as f:
        file_data = f.read()
    return file_data
########################
if __name__ == "__main__":
    file_path = input("輸入圖片名稱")
    print('file_path = ./{}'.format(file_path))
    data = read_image_file_rb(file_path)
    # print('data = ', data)
    decodeImage(data)
arrow
arrow
    創作者介紹
    創作者 walley_yu(小雨) 的頭像
    walley_yu(小雨)

    小雨の部

    walley_yu(小雨) 發表在 痞客邦 留言(0) 人氣()