
これは、MacOS Mojaveで導入された動的な壁紙を作成するためのMacOSのシンプルなコンソールアプリケーションです。ここでは、動的な壁紙の仕組みを見ることができます。また、次の記事で動的な壁紙の詳細を読むことができます。
以下に、準備された動的壁紙をダウンロードできます。
アースビュー(ダウンロード) 
サイバーパンク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それだけです。これで、独自のダイナミックウォールパッパーを構築できます。
インストールのSwiftビルド部分でエラーが発生した場合は、App StoreからXcode IDE(ツールだけでなく)全体をダウンロードしてみてください。その後、実行します
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer インストールコマンドをもう一度実行します。
上記のコマンドを行ったことがある場合は、動的な壁紙を作成できます。本当に簡単です。まず、すべての写真を1つのフォルダーに入れ、同じフォルダーにPictureの説明を記載したjsonファイルを作成する必要があります。アプリケーションは、3種類の動的壁紙をサポートします。
Solar Coordinates 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ファイルを作成した後に表示されます)。ファイルの1つのみがプライマリになります。isForLightユーザーが「light(static)」の壁紙を選択したときにtrue画像が表示される場合isForDarkユーザーが「暗い(静的)」の壁紙を選択したときにtrue画像が表示される場合altitude - 太陽とオブザーバーのローカルな地平線の間の角度です。azimuth - それは地平線の周りの太陽の角度です。適切な高度と方位を計算するには、 wallpapper-exifアプリケーションまたはWebページを使用できます:https://keisan.casio.com/exec/system/12224682277。 Webページでは、写真と日付を撮る場所を置く必要があります。次に、システムは、1日中太陽の高度と方位角のために生成します。
OS Time 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ファイルを作成した後に表示されます)。ファイルの1つのみがプライマリになります。isForLightユーザーが「light(static)」の壁紙を選択したときにtrue画像が表示される場合isForDarkユーザーが「暗い(静的)」の壁紙を選択したときにtrue画像が表示される場合time - 壁紙が変更される時間(最も重要な時間は時間です)。OS Apperance設定(Light/Dark)に基づく壁紙の場合、はるかにシンプルなJSONファイルを準備する必要があります。2つの画像のみを使用する必要があります(1つはライト用、もう1つは暗いテーマ用)。
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true
},
{
"fileName" : " 2.png " ,
"isForDark" : true
}
]プロパティ:
fileName - 画像ファイル名の名前。isPrimary一次画像である画像に関する情報( heicファイルを作成した後に表示されます)。ファイルの1つのみがプライマリになります。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アプリケーションを使用して、Sunのaltitudeとazimuthでjsonファイルを生成できます。アプリケーションの使用例:
$ wallpapper-exif 1.jpeg 2.jpeg 3.jpeg json 、コンソールの出力として生産する必要があります。
Sunの計算は、Vladimir Agafonkin(@mourner)によって作成されたJavaScriptライブラリに基づいて作成されています。