如何自己動(dòng)手制作macOS系統(tǒng)Heic動(dòng)態(tài)壁紙

原文:https://dy.bosslib.com/diy/

1.了解動(dòng)態(tài)桌面壁紙

當(dāng)macOS 10.14發(fā)布后链瓦,會(huì)發(fā)現(xiàn)系統(tǒng)帶有動(dòng)態(tài)桌面壁紙,設(shè)置后,我們的桌面背景將隨著一天從早上、到下午异袄、再到晚上的推移而發(fā)生微妙的變化。

雖然有些軟件也有類似的動(dòng)態(tài)變化效果玛臂,但是在新系統(tǒng)中默認(rèn)的HEIC格式的動(dòng)態(tài)壁紙?bào)w驗(yàn)更好烤蜕。

(1)HEIC格式的文件更小、圖像更清晰迹冤;

(2)由于晨昏變化隨著四季讽营、地理位置并非一成不變,如果全年都按照一個(gè)節(jié)拍切換壁紙叁巨,其效果在絕大數(shù)日子里都將跟真實(shí)景象不同步斑匪。而Mojave的動(dòng)態(tài)桌面,可以真正做到與當(dāng)?shù)氐墓庹胀阶兓嫔住@硐肭闆r下,切換的節(jié)奏與太陽(yáng)運(yùn)動(dòng)狡蝶、四季各不相同庶橱,并且根據(jù)用戶的地理位置和日期,有選擇地跳過(guò)一些不符合實(shí)際情況的照片贪惹。

2.動(dòng)態(tài)桌面壁紙?jiān)?/h2>

macOS Mojave動(dòng)態(tài)桌面壁紙苏章,是以太陽(yáng)方位為標(biāo)準(zhǔn),將對(duì)應(yīng)的壁紙文件封裝到heic文件中奏瞬。

(1)每套桌面壁紙包含16張靜態(tài)圖片(可以更多或更少)枫绅,1個(gè)記錄圖片與太陽(yáng)方位對(duì)應(yīng)關(guān)系的json文件。解析系統(tǒng)中壁紙文件信息如下:

<dict>

? ? <key>a</key>

? ? <real>-38.04743388682423</real>

? ? <key>i</key>

? ? <integer>15</integer>

? ? <key>o</key>

? ? <integer>0</integer>

? ? <key>z</key>

? ? <real>53.509085812513092</real>

</dict>

其中硼端,a是altitude并淋,z是azimuth。

(2)在json文件中珍昨,每張圖片都標(biāo)記了對(duì)應(yīng)的太陽(yáng)方位县耽,即高度角(Altitude:太陽(yáng)與地平線的夾角)和方位角(Azimuth:太陽(yáng)按順時(shí)針?lè)较蚱x正北的角度),通過(guò)這兩個(gè)值確定太陽(yáng)在天體中的位置镣典。其關(guān)系圖如下:

(3)壁紙運(yùn)行時(shí)兔毙,系統(tǒng)將根據(jù)用戶的位置和時(shí)間計(jì)算太陽(yáng)的實(shí)際方位,并與壁紙中標(biāo)記的信息對(duì)比兄春,展示最接近的壁紙圖片澎剥。

3.動(dòng)手做一個(gè)HEIC的動(dòng)態(tài)壁紙

在github上,開(kāi)發(fā)者已開(kāi)發(fā)了命令行工具赶舆,快速的制作heic動(dòng)態(tài)桌面壁紙哑姚。原文:https://github.com/mczachurski/wallpapper?趾唱。

3.1準(zhǔn)備環(huán)境

(1)使用macOS的電腦。

(2)安裝了最新的XCode和Swift蜻懦。

3.2.安裝軟件包

打開(kāi)終端工具甜癞,安裝wallpapper軟件包

3.2.1.Homebrew方式安裝

brew tap mczachurski/wallpapper

brew install wallpapper

3.2.2.普通安裝

自行確定好一個(gè)安裝目錄位置,進(jìn)入進(jìn)行安裝宛乃。

? ? git clone https://github.com/mczachurski/wallpapper.git

? ? cd wallpapper

? ? swift build --configuration release

? ? sudo cp .build/x86_64-apple-macosx/release/wallpapper /usr/local/bin

3.2.3.確定是否安裝成功

我們可以在終端中輸入"wallpaper -h"來(lái)測(cè)試悠咱,如果出現(xiàn)如下類似信息表示安裝成功。

wallpapper: [command_option] -i inputFile

Command options are:

-h?????????show this message and exit

-o?????????output file name (default is 'output.heic')

-i?????????input file name, json file with wallpaper description

3.3.開(kāi)始制作

3.3.1.Solar太陽(yáng)坐標(biāo)

對(duì)于跟隨太陽(yáng)坐標(biāo)變化的動(dòng)態(tài)壁紙征炼,json文件必須具有類似下面的結(jié)構(gòu)析既。

準(zhǔn)備文件夾,將圖片放在文件夾中谆奥,并且同級(jí)目錄下創(chuàng)建json文件眼坏,結(jié)構(gòu)如下:

[

? {

? ? "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

? }

]

參數(shù)說(shuō)明:

fileName: 圖片名稱

isPrimary: 是否是主圖,其在創(chuàng)建heic文件后可見(jiàn)酸些。一個(gè)heic文件中只有一個(gè)主圖宰译。

isForLight: 如果用戶選擇“Light模式(靜態(tài))”壁紙時(shí),將顯示該圖片魄懂,也只能一張?jiān)O(shè)置為true沿侈,可不設(shè)置。

isForDark: 如果用戶選擇“Dark模式(靜態(tài))”壁紙時(shí)市栗,將顯示該圖片缀拭,也只能一張?jiān)O(shè)置為true,可不設(shè)置填帽。

altitude: 太陽(yáng)的高度

azimuth: 太陽(yáng)繞地平線的角度

altitude和azimuth可以在 https://keisan.casio.com/exec/system/1224682277 進(jìn)行計(jì)算蛛淋,你上傳一張你當(dāng)?shù)嘏臄z的圖片,可以查看圖片的太陽(yáng)信息篡腌,也可以看到我們所在地的全部時(shí)刻表與太陽(yáng)方位的對(duì)應(yīng)關(guān)系褐荷。如果使用apple手機(jī),安裝SkyGuide等天文APP也可以查詢太陽(yáng)方位哀蘑。

3.3.2.Time系統(tǒng)時(shí)間

對(duì)于基于macOS系統(tǒng)時(shí)間變化的壁紙诚卸,所使用的json結(jié)構(gòu)如下:

[

? ? {

? ? ? ? "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"

? ? }

]

參數(shù):

fileName: 圖片名稱

isPrimary: 是否是主圖,其在創(chuàng)建heic文件后可見(jiàn)绘迁。一個(gè)heic文件中只有一個(gè)主圖合溺。

isForLight: 如果用戶選擇“Light模式(靜態(tài))”壁紙時(shí),將顯示該圖片缀台,也只能一張?jiān)O(shè)置為true棠赛,可不設(shè)置。

isForDark: 如果用戶選擇“Dark模式(靜態(tài))”壁紙時(shí),將顯示該圖片睛约,也只能一張?jiān)O(shè)置為true鼎俘,可不設(shè)置。

time: 壁紙變化的時(shí)間(重點(diǎn)是整時(shí))辩涝。

3.3.3.Apperance系統(tǒng)外觀

對(duì)于基于macOS系統(tǒng)外觀設(shè)置(Light/Dark)的壁紙贸伐,我們準(zhǔn)備的json文件更加簡(jiǎn)單,只需要使用2個(gè)圖像怔揩,1個(gè)用于Light模式捉邢,1個(gè)用戶Dark模式。

[

? ? {

? ? ? ? "fileName": "1.png",

? ? ? ? "isPrimary": true,

? ? ? ? "isForLight": true

? ? },

? ? {

? ? ? ? "fileName": "2.png",

? ? ? ? "isForDark": true

? ? }

]

參數(shù):

fileName: 圖片名稱

isPrimary: 是否是主圖商膊,其在創(chuàng)建heic文件后可見(jiàn)伏伐。一個(gè)heic文件中只有一個(gè)主圖。

isForLight: 如果用戶選擇“Light模式(靜態(tài))”壁紙時(shí)晕拆,將顯示該圖片藐翎。

isForDark: 如果用戶選擇“Dark模式(靜態(tài))”壁紙時(shí),將顯示該圖片实幕。

3.4.生成HEIC文件

當(dāng)準(zhǔn)備好圖片和json文件后吝镣,進(jìn)入該目錄,執(zhí)行以下命令即可生成HEIC文件茬缩。

wallpapper -i wallpapper.json

我們就能得到HEIC文件赤惊,然后設(shè)置為我們系統(tǒng)的桌面壁紙吧!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凰锡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子圈暗,更是在濱河造成了極大的恐慌掂为,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件员串,死亡現(xiàn)場(chǎng)離奇詭異勇哗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)寸齐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門欲诺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人渺鹦,你說(shuō)我怎么就攤上這事扰法。” “怎么了毅厚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵塞颁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)祠锣,這世上最難降的妖魔是什么酷窥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮伴网,結(jié)果婚禮上蓬推,老公的妹妹穿的比我還像新娘。我一直安慰自己澡腾,他們只是感情好沸伏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蛋铆,像睡著了一般馋评。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刺啦,一...
    開(kāi)封第一講書(shū)人閱讀 51,610評(píng)論 1 305
  • 那天留特,我揣著相機(jī)與錄音,去河邊找鬼玛瘸。 笑死蜕青,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糊渊。 我是一名探鬼主播右核,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼渺绒!你這毒婦竟也來(lái)了贺喝?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宗兼,失蹤者是張志新(化名)和其女友劉穎躏鱼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體殷绍,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡染苛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了主到。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶行。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖登钥,靈堂內(nèi)的尸體忽然破棺而出畔师,到底是詐尸還是另有隱情,我是刑警寧澤怔鳖,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布茉唉,位于F島的核電站固蛾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏度陆。R本人自食惡果不足惜艾凯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懂傀。 院中可真熱鬧趾诗,春花似錦、人聲如沸蹬蚁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)犀斋。三九已至贝乎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叽粹,已是汗流浹背览效。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虫几,地道東北人锤灿。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像辆脸,于是被迫代替她去往敵國(guó)和親但校。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容