
這是MacOS的簡單控制台應用程序,可以創建MacOS Mojave中引入的動態壁紙。在這裡,您可以觀看動態壁紙的工作原理。另外,您可以在以下文章中閱讀有關動態壁紙的更多信息:
下面您可以下載準備好的動態壁紙:
地球視圖(下載) 
Cyberpunk 2077(下載) 
您需要安裝最新的Xcode(10.2)和Swift 5。
打開終端並運行以下命令。
brew tap mczachurski/wallpapper
brew install wallpapper打開終端並運行以下命令。
$ git clone https://github.com/mczachurski/wallpapper.git
$ cd wallpapper
$ swift build --configuration release
$ sudo cp .build/release/wallpapper /usr/local/bin
$ sudo cp .build/release/wallpapper-exif /usr/local/bin如果您在版本4.1中使用了Swift,請編輯Package.swift文件,然後將Swift版本(在第一行)中放置。
另外,您可以使用build.sh腳本構建(它使用swiftc而不是Swift CLI)。
$ git clone https://github.com/mczachurski/wallpapper.git
$ cd wallpapper
$ ./build.sh
$ sudo cp .output/wallpapper /usr/local/bin
$ sudo cp .output/wallpapper-exif /usr/local/bin現在,在控制台中您可以運行wallpapper -h ,您應該得到類似於以下的響應。
wallpapper: [command_option] [-i jsonFile] [-e heicFile]
Command options are:
-h show this message and exit
-v show program version and exit
-o output file name (default is ' output.heic ' )
-i input .json file with wallpaper description
-e input .heic file to extract metadata就這樣。現在,您可以構建自己的動態壁畫。
如果在安裝的快速構建部分中遇到錯誤,請嘗試從App Store下載整個Xcode IDE(不僅僅是工具)。然後運行
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 並再次運行安裝命令。
如果您現在完成了上述命令,則可以構建動態牆紙。這真的很容易。首先,您必須將所有圖片放入一個文件夾中,然後在同一文件夾中使用圖片的描述創建json文件。應用程序支持三種動態壁紙。
對於基於太陽能坐標的壁紙, json文件必須具有下面的摘要上的結構。
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true ,
"altitude" : 27.95 ,
"azimuth" : 279.66
},
{
"fileName" : " 2.png " ,
"altitude" : -31.05 ,
"azimuth" : 4.16
},
...
{
"fileName" : " 16.png " ,
"isForDark" : true ,
"altitude" : -28.63 ,
"azimuth" : 340.41
}
]特性:
fileName - 圖片文件名的名稱(您可以將同一文件用於幾個節點)。isPrimary有關主要圖像的信息(創建heic文件後將可見)。只有一個文件可以是主要文件。isForLight如果用戶選擇“ Light(static)”壁紙時將顯示true圖片isForDark如果用戶選擇“黑暗(靜態)”壁紙時將顯示true圖片altitude - 是太陽和觀察者的本地視野之間的角度。azimuth - 這是圍繞地平線的太陽的角度。要計算適當的高度和方位角,您可以使用wallpapper-exif應用程序或網頁:https://keisan.casio.com/exec/system/1224682277。在網頁中,您必須放置照片和日期的位置。然後,系統為您生成了整天的高度和太陽方位角。
對於基於OS時間json文件的牆紙,必須具有下面的片段上的結構。
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true ,
"time" : " 2012-04-23T10:25:43Z "
},
{
"fileName" : " 2.png " ,
"time" : " 2012-04-23T14:32:12Z "
},
{
"fileName" : " 3.png " ,
"time" : " 2012-04-23T18:12:01Z "
},
{
"fileName" : " 4.png " ,
"isForDark" : true ,
"time" : " 2012-04-23T20:10:45Z "
}
]特性:
fileName - 圖片文件名的名稱(您可以將同一文件用於幾個節點)。isPrimary有關主要圖像的信息(創建heic文件後將可見)。只有一個文件可以是主要文件。isForLight如果用戶選擇“ Light(static)”壁紙時將顯示true圖片isForDark如果用戶選擇“黑暗(靜態)”壁紙時將顯示true圖片time - 更改牆紙的時間(最重要的是小時)。對於基於操作系統的壁紙設置(Light/Dark),我們必須準備更簡單的JSON文件,我們只需使用兩個圖像(一個用於光,一個用於深色主題)。
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true
},
{
"fileName" : " 2.png " ,
"isForDark" : true
}
]特性:
fileName - 圖片文件名的名稱。isPrimary有關主要圖像的信息(創建heic文件後將可見)。只有一個文件可以是主要文件。isForLight如果用戶使用光主題時將顯示true圖像isForDark如果用戶使用深色主題時將顯示true圖像當您擁有json文件和所有圖片時,您可以生成heic文件。您必須運行以下命令:
wallpapper -i wallpapper.json您應該有一個新文件: output.heic 。將此文件設置為新牆紙,並享受您自己的動態牆紙!
您可以從現有的heic文件中提取元數據。您必須運行以下命令:
wallpapper -e Catalina.heic元數據應在控制台上打印為輸出。
還可以提取並保存整個plist文件:
wallpapper -e Catalina.heic -o output.plist如果您的照片包含GPS EXIF元數據和創建時間,則可以使用wallpapper-exif應用程序來生成帶有太陽altitude和azimuth的json文件。示例應用程序用法:
$ wallpapper-exif 1.jpeg 2.jpeg 3.jpeg應在控制台上以輸出作為輸出產生json 。
Sun計算是根據Vladimir Agafonkin(@mourner)創建的JavaScript庫創建的。