(偽)Android手機拍攝AVIF/HEIF相片

Ivon Huang
·
·
IPFS
·

Android手機內建大部分相機輸出的不外乎是JPEG或PNG,有些提供RAW檔案。隨著解像度越來越高,檔案大概都4MB起跳。

從容量來看,為何不在拍照的時候就儲存成AVIF/HEIC/HEIF等檔案更小、更高效率的格式呢?或許未來會支援吧,AVIF比HEIC更新更有吸引力,因為不用摳摳。

Android 12已支援顯示AVIF,iOS要到iOS 16才會加入。

在那之前,我們可以先用Termux的指令相機功能玩一下,在拍照成JPEG後直接轉成近乎無損的AVIF。首先,這是用Sony內建相機拍的主角北上。

安裝Termux,安裝Termux API。安裝termux-api和Image Magick套件:

pkg update
pkg install termux-api imagemagick

使用termux-camera-info指令查看相機訊息。應該會印出一串JSON,並標記手機上的鏡頭ID,例如我有1個前鏡頭+3個後鏡頭,對應ID 0~4。

但... Termux沒有GUI要怎麼拍照?就擺好pose靠感覺打指令囉。如果想看該鏡頭的大約成像狀況,下載OpenCamera切換鏡頭就會得知。

再來是拍照指令!Termux會叫相機 (-c後面接鏡頭ID) 拍照輸出jpeg格式的相片,沒其他選項可調。將該檔案丟給Image Magick轉檔成AVIF。最後面的指令是將jpeg刪除。

termux-camera-photo -c 0 temp.jpeg && magick convert temp.jpeg -quality 90 out.avif && rm temp.jpeg

拍照之後,從Termux的家目錄把檔案取出來,JPEG(左)轉成AVIF(右)後體積減少了一半多。(註:我的手機AVIF顏色映射怪怪的,要放到Linux電腦上看才會準)

改用3號廣角鏡頭試試也別有一番風味。

當然,要將檔案轉成蘋果在用的HEIC也是可以的,但這樣檔案反而會變大XD。

這麼麻煩,幹嘛不正常拍完照再大量轉換呢?很好,請看:如何將圖片影片轉檔成AVIF / AVIFS

CC BY-NC-ND 2.0

Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!

Ivon Huang自由軟體、航空、20世紀歷史愛好者。 這裡記載的東西究竟會成為未來的碎片,在那最果之處,反射出匯集各處思念的光芒。 My Blog: https://ivonblog.com
  • Author
  • More

將suckless.org極簡網頁設計哲學付諸實現

Linux電腦好用的必裝軟體,從文書處理到玩遊戲一次滿足

半回憶錄形式的2022年Matters回顧問卷