
Esta es una simple aplicación de consola para MacOS para crear fondos de pantalla dinámicos introducidos en MacOS Mojave. Aquí puede ver cómo funcionan los fondos de pantalla dinámicos. También puede leer más sobre fondos de pantalla dinámicos en los siguientes artículos:
A continuación puede descargar fondos de pantalla dinámicos preparados:
Vista de la tierra (descargar) 
Cyberpunk 2077 (descargar) 
Debe tener el último Xcode (10.2) y Swift 5 instalados.
Abra su terminal y ejecute los siguientes comandos.
brew tap mczachurski/wallpapper
brew install wallpapperAbra su terminal y ejecute los siguientes comandos.
$ 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 Si está utilizando Swift en la versión 4.1, edite el archivo Package.swift y coloque allí su versión de Swift (en primera línea).
También puede construir usando script build.sh (utiliza swiftc en su lugar 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 Ahora en la consola puede ejecutar wallpapper -h y debe obtener una respuesta similar a la siguiente.
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 metadataEso es todo. Ahora puede construir sus propios fondos de pantalla dinámicos.
Si recibe un error durante la parte de la instalación Swift Build, intente descargar todo el IDE XCode completo (no solo las herramientas) de la App Store. Luego corre
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer y ejecute el comando de instalación nuevamente.
Si ha hecho los comandos anteriores, ahora puede construir un fondo de pantalla dinámico. Es realmente fácil. Primero debe poner todas sus imágenes en una carpeta y en la misma carpeta cree el archivo json con la descripción de la imagen. Soporte de aplicaciones Tres tipos de fondos de pantalla dinámicos.
Para papel tapiz que basado en el archivo json de las coordenadas solares debe tener una estructura como en el fragmento debajo.
[
{
"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
}
]Propiedades:
fileName : nombre del nombre del archivo de imagen (puede usar el mismo archivo para pocos nodos).isPrimary - Información sobre la imagen que es la imagen principal (será visible después de crear el archivo heic ). Solo uno de los archivos puede ser primario.isForLight : si se mostrará una imagen true cuando el usuario elija el papel tapiz "ligero (estático)"isForDark : si se mostrará una imagen true cuando el usuario elija el papel tapiz "oscuro (estático)"altitude : es el ángulo entre el sol y el horizonte local del observador.azimuth - Ese es el ángulo del sol alrededor del horizonte. Para calcular la altitud y el acimut adecuado, puede usar la aplicación wallpapper-exif o la página web: https://keisan.casio.com/exec/system/1224682277. En la página web debe colocar el lugar donde tome una foto y la fecha. Luego, el sistema genera para su altitud y acimut del sol durante el día entero.
Para papel tapiz que basado en el archivo json de tiempo del sistema operativo debe tener una estructura como en el fragmento debajo.
[
{
"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 "
}
]Propiedades:
fileName : nombre del nombre del archivo de imagen (puede usar el mismo archivo para pocos nodos).isPrimary - Información sobre la imagen que es la imagen principal (será visible después de crear el archivo heic ). Solo uno de los archivos puede ser primario.isForLight : si se mostrará una imagen true cuando el usuario elija el papel tapiz "ligero (estático)"isForDark : si se mostrará una imagen true cuando el usuario elija el papel tapiz "oscuro (estático)"time : tiempo cuando se cambiará el papel tapiz (lo más importante es la hora).Para los fondos de pantalla basados en la configuración de aperance del sistema operativo (Light/Dark) tenemos que preparar un archivo JSON mucho más simple, y tenemos que usar solo dos imágenes (una para Light y otra para el tema oscuro).
[
{
"fileName" : " 1.png " ,
"isPrimary" : true ,
"isForLight" : true
},
{
"fileName" : " 2.png " ,
"isForDark" : true
}
]Propiedades:
fileName - nombre del nombre del archivo de imagen.isPrimary - Información sobre la imagen que es la imagen principal (será visible después de crear el archivo heic ). Solo uno de los archivos puede ser primario.isForLight - si se mostrará una imagen true cuando el usuario use un tema de luzisForDark : si se mostrará una imagen true cuando el usuario use un tema oscuro Cuando tenga archivo json y todas las imágenes, puede generar archivo heic . Tienes que ejecutar el siguiente comando:
wallpapper -i wallpapper.json Debería obtener un nuevo archivo: output.heic . ¡Establezca este archivo como un nuevo fondo de pantalla y disfrute de su propio fondo de pantalla dinámico!
Puede extraer metadatos del archivo heic existente. Tienes que ejecutar el siguiente comando:
wallpapper -e Catalina.heicLos metadatos deben imprimirse como salida en la consola.
También es posible extraer y guardar el archivo plist completo:
wallpapper -e Catalina.heic -o output.plist Si sus fotos contienen metadatos GPS exif y tiempo de creación, puede usar la aplicación wallpapper-exif para generar el archivo json con altitude solar y azimuth . Ejemplo de uso de la aplicación:
$ wallpapper-exif 1.jpeg 2.jpeg 3.jpeg json debe producirse como salida en la consola.
Los cálculos Sun se han creado en base a la biblioteca JavaScript creada por Vladimir Agafonkin (@Mourner).