2026/07/29

[note] patch "Apple Spatial Photo → Side-by-Side or 3D Anaglyph" for Samsung S25U

不爭的事實,雖然已經寫出來了實作平行開圖的工具,開圖可以壓到將近0.5s,但前輩的UI還是比較漂亮

,就在動歪腦筋怎麼讓前輩的code也可以跑S25U的照片。

開了前輩的code追了一下,發現是由chooseStereoImageInfos這函數回傳libheif傳回的圖片們。

前輩的技巧看起來是判斷影像的大小去跑,但在我build0040附近的study知道這也是針對Apple的workaround,HEIC的規範是要去讀ster box的影像對。

本來想說要不要把前輩的code修一修後跟他說,但他function切的蠻開的,file與img的位置不一樣,如果要加入ster box判讀感覺工程不小,決定弄個小外掛來用前輩UI就好

外掛的原始碼是這樣:

##ReadMore##

javascript:nw = window.open('about:blank', '_blank');nwd=nw.document;nwd.open();nwd.write(document.documentElement.outerHTML.replace(/return twoSmallest/, 'return sortedByAreaAscending.slice(1,3)'));nwd.close();

使用方式:新增一捷徑,網址內容如上,然後到前輩的網頁點一下新增的連結。在新開啟的視窗內去開S25U的圖。

運作原理:chooseStereoImageInfos會回傳立體影像對,其中一段在判斷影像大小,把那段判斷的return給置換掉。

已知問題:由於不走ster box判斷,也沒有讀取方向,所以左右眼的判斷可能是錯的,一樣也是workaround的方式。但可以運作:-/,不行就自己換邊吧,反正我看沒多少人會用。

版權:前輩的網站版權屬於前輩的,https://michaeleskin.com/tools/apple-spatial-photo-to-sbs.html,我並不擁有前輩的版權。

更新,研究出來前輩的完整要怎麼改了。

分析:前輩的code中,chooseStereoImageInfos回傳了使用的影像,原本我嘗試用這個函數,但發現回傳後順序怎麼樣都會被改掉,後面又找到前輩在render完之後又會進行排序一次(decodedViews = rendered.sort),所以還要把排序給關掉,讓他一開始就吃解析標準來的影像對。思考要不要把這段code放出來,因為目前還是console patch,code有點長不好修改。

沒有留言: