
Ini adalah aplikasi konsol sederhana untuk macOS untuk membuat wallpaper dinamis yang diperkenalkan di macos mojave. Di sini Anda dapat menyaksikan cara kerja wallpaper yang dinamis. Anda juga dapat membaca lebih lanjut tentang wallpaper dinamis dalam artikel berikut:
Di bawah ini Anda dapat mengunduh wallpaper dinamis yang disiapkan:
Earth View (Unduh) 
Cyberpunk 2077 (unduh) 
Anda harus memiliki Xcode terbaru (10.2) dan Swift 5 diinstal.
Buka terminal Anda dan jalankan perintah berikut.
brew tap mczachurski/wallpapper
brew install wallpapperBuka terminal Anda dan jalankan perintah berikut.
$ 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 Jika Anda menggunakan Swift di versi 4.1, silakan edit file Package.swift dan letakkan di sana versi Swift Anda (di baris pertama).
Anda juga dapat membangun menggunakan skrip build.sh (menggunakan swiftc sebagai gantinya 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 Sekarang di konsol Anda dapat menjalankan wallpapper -h dan Anda harus mendapat respons yang mirip dengan yang berikut.
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 metadataItu saja. Sekarang Anda dapat membangun wallpappers dinamis Anda sendiri.
Jika Anda mendapatkan kesalahan selama swift build porsion instal, coba unduh seluruh IDE XCODE (bukan hanya alat) dari App Store. Lalu jalankan
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer dan jalankan perintah instalasi lagi.
Jika Anda telah melakukan perintah di atas sekarang Anda dapat membangun wallpaper dinamis. Sangat mudah. Pertama, Anda harus memasukkan semua gambar kepada Anda ke dalam satu folder dan di folder yang sama membuat file json dengan deskripsi gambar. Aplikasi mendukung tiga jenis wallpaper dinamis.
Untuk wallpaper yang berdasarkan koordinat surya, file json harus memiliki struktur seperti pada cuplikan di bawah.
[
{
"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
}
]Properti:
fileName - Nama nama file gambar (Anda dapat menggunakan file yang sama untuk beberapa node).isPrimary - Informasi tentang gambar yang merupakan gambar utama (akan terlihat setelah membuat file heic ). Hanya satu file yang bisa menjadi yang utama.isForLight - jika gambar true akan ditampilkan saat pengguna memilih wallpaper "Light (Static)"isForDark - Jika gambar true akan ditampilkan saat pengguna memilih wallpaper "gelap (statis)"altitude - adalah sudut antara matahari dan cakrawala lokal pengamat.azimuth - Itu adalah sudut matahari di sekitar cakrawala. Untuk menghitung ketinggian dan azimuth yang tepat, Anda dapat menggunakan aplikasi wallpapper-exif atau halaman web: https://keisan.casio.com/exec/system/1224682277. Di halaman web Anda harus menempatkan tempat di mana Anda mengambil foto dan tanggalnya. Kemudian sistem menghasilkan untuk Anda ketinggian dan azimuth matahari sepanjang hari.
Untuk wallpaper yang berdasarkan waktu OS json , file harus memiliki struktur seperti pada cuplikan di bawah.
[
{
"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 "
}
]Properti:
fileName - Nama nama file gambar (Anda dapat menggunakan file yang sama untuk beberapa node).isPrimary - Informasi tentang gambar yang merupakan gambar utama (akan terlihat setelah membuat file heic ). Hanya satu file yang bisa menjadi yang utama.isForLight - jika gambar true akan ditampilkan saat pengguna memilih wallpaper "Light (Static)"isForDark - Jika gambar true akan ditampilkan saat pengguna memilih wallpaper "gelap (statis)"time - Waktu ketika wallpaper akan diubah (yang paling penting adalah jam).Untuk wallpaper berdasarkan pengaturan penampilan OS (terang/gelap) kita harus menyiapkan file JSON yang lebih sederhana, dan kita harus menggunakan hanya dua gambar (satu untuk cahaya dan satu untuk tema gelap).
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true
},
{
"fileName" : " 2.png " ,
"isForDark" : true
}
]Properti:
fileName - Nama nama file gambar.isPrimary - Informasi tentang gambar yang merupakan gambar utama (akan terlihat setelah membuat file heic ). Hanya satu file yang bisa menjadi yang utama.isForLight - jika gambar true akan ditampilkan saat pengguna menggunakan tema cahayaisForDark - Jika gambar true akan ditampilkan saat pengguna menggunakan tema gelap Saat Anda memiliki file json dan semua gambar maka Anda dapat menghasilkan file heic . Anda harus menjalankan perintah berikut:
wallpapper -i wallpapper.json Anda harus mendapatkan file baru: output.heic . Atur file ini sebagai wallpaper baru dan nikmati wallpaper dinamis Anda sendiri!
Anda dapat mengekstrak metadata dari file heic yang ada. Anda harus menjalankan perintah berikut:
wallpapper -e Catalina.heicMetadata harus dicetak sebagai output pada konsol.
Juga dimungkinkan untuk mengekstrak dan menyimpan seluruh file plist :
wallpapper -e Catalina.heic -o output.plist Jika foto Anda berisi GPS exif metadata dan waktu pembuatan, Anda dapat menggunakan aplikasi wallpapper-exif untuk menghasilkan file json dengan altitude matahari dan azimuth . Contoh Penggunaan Aplikasi:
$ wallpapper-exif 1.jpeg 2.jpeg 3.jpeg json harus diproduksi sebagai output pada konsol.
Perhitungan matahari telah dibuat berdasarkan pustaka JavaScript yang dibuat oleh Vladimir Agafonkin (@mourner).