(偽)Android手機拍攝AVIF/HEIF相片
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
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!
- Author
- More