kelvinct
012 · 貼圖包

把 LINE 貼圖包裡的貼圖拿出來。

貼上 LINE 貼圖小舖的連結,就能把整包貼圖變成透明 PNG,尺寸是 LINE 提供的最大版本,打包成一個 ZIP。圖片是從 LINE 自己的圖片伺服器直接送到你的裝置:全程在你的瀏覽器完成,不上傳任何資料,也不會經過我這邊的任何伺服器。

支援 store.line.me 的貼圖包,或 App 裡的分享連結。只貼一組數字,例如 1029149,也沒問題。表情貼不支援——LINE 把它放在這個頁面讀不到的地方。

手氣不錯?

檔案到底是從哪裡來的?

從 LINE 自己的圖片伺服器,直接送到你的裝置。這個頁面沒有後端:它讀取貼圖包的公開清單,逐張抓圖,再在你瀏覽器的記憶體裡打包成 ZIP。沒有上傳、沒有中轉,kelvinct.com 上也不會留下任何一份副本。而且這是這個頁面唯一被允許連出去的位址——原始碼裡的 connect-src 政策只寫了一個主機,所以沒有分析工具、沒有 CDN、沒有第三方在旁邊看。打開瀏覽器的「網路」分頁就能驗證。

為什麼不能直接按右鍵存檔?

LINE 貼圖小舖是用 CSS 背景圖排出那面貼圖牆的,根本沒有東西可以按右鍵,而且你看到的縮圖是小尺寸版本。這個工具會一次把整包每一張都抓成 370×320,也就是 LINE 公開的最大尺寸。

PNG 真的一個位元組都沒動嗎?

沒動,而這正是重點。LINE 的貼圖是索引色 PNG,透明度存放在 tRNS 區塊裡,那裡可以放柔和的逐像素透明度——正因為如此,抗鋸齒的邊緣放在任何背景上都很乾淨。如果拿去 canvas 重畫,檔案就會被重新編碼,那些邊緣有可能被壓成一圈白邊,所以這個工具從不那樣做:它把收到的位元組原封不動寫進 ZIP。你拿到的檔案,就是 LINE 送出來的那一個。

動態貼圖包會怎麼處理?

動態貼圖其實是 APNG,也就是在一般 PNG 後面接上額外影格。這個頁面是直接在實際位元組裡找 acTL 區塊來判斷,而不是相信貼圖包的中繼資料,因為比較舊的貼圖包根本不會標示。你可以原樣保留 APNG、轉成到處都能播的 GIF,或兩種都拿。GIF 轉檔是唯一會重建位元組的地方,而它一樣在你的瀏覽器裡完成。