這個頁面的程式碼沒跑起來。 直接從資料夾裡開啟 index.html,瀏覽器會攔下 JavaScript 模組,於是你選好圖片之後,頁面不會有任何反應。改用 http 把這個資料夾提供出去:
powershell -ExecutionPolicy Bypass -File serve.ps1 然後開啟 http://localhost:8080/。
1 選一張圖片 銀行流水的截圖、護照的照片、印著住址的帳單。需要塗黑的圖片,恰恰就是不該為了塗黑而傳給陌生伺服器的那些圖片。這一張由瀏覽器直接從你的硬碟讀進來。
把圖片拖到這裡 或者點選選擇 | JPEG、PNG、WebP,以及你的瀏覽器打得開的其他格式 試個例子
2 遮住不該被看到的部分 在圖片上拖動就能拉出一個框。框可以拖著移動,可以拉把手改大小,也可以按 Tab 選中之後用方向鍵調整:Alt 加方向鍵改大小,Delete 刪掉它。每個框下面顯示的都是真實結果,預覽是寫檔案的那段程式碼按螢幕尺寸畫出來的。
塗黑 整塊一種顏色,從邊到邊。原來那裡的東西什麼都不剩:輪廓不剩,平均值不剩,連有幾個字都不剩。三種裡只有這一種是把話說死的,凡是能讀成文字的都該用它。
打碼 每一格變成那一格的平均色。原來的畫素確實從檔案裡沒了,但一格一格的平均值仍然是對下面內容的一次測量。對於常見字型裡的文字,已經有公開研究靠它還原出了原文。用來遮人群裡的一張臉沒問題,用來遮帳號不行。
模糊 每個畫素變成周圍畫素的加權平均。跟打碼是同一個問題,而且更明顯一些:模糊是一次卷積,卷積原則上可以反過來算。想讓某樣東西柔和一點、而不是藏起來時再用它。
選一張圖片,它就會出現在這裡讓你畫。
3 儲存塗好的那一份 圖片被解碼成畫素,框寫在這些畫素上面,結果再被編碼成一個新檔案。沒有圖層,沒有註解,也沒有任何關於框在哪裡的記錄,因為被遮的畫素在編碼器拿到東西之前就已經不存在了。
格式 這跟塗黑沒關係:編碼器看到它們的時候,那些畫素早就沒了。它只決定圖片其餘部分佔多大、怎麼壓縮。
格式 自動:照片給 JPEG,其餘給 PNG PNG(無損) JPEG WebP
塗黑並儲存
正在按原始尺寸處理…
回頭把它開啟,試著選中被遮住的文字,或者貼進編輯器裡找找圖層。找不到東西:只有平平的一張圖,你遮住的地方在它被寫出來之前就已經被覆蓋了。
這個瀏覽器解不開這張圖片。 這個檔案打不開:{why} {name} — {width} x {height} {width} x {height},位於 {x}, {y} {where} — 打了馬賽克,{size} px 的方塊({across} x {down}) {where} — 模糊,半徑 {radius} px {where} — 塗黑 區域 {n}:{what}。方向鍵移動它,Alt 加方向鍵改變大小,Delete 刪除它。 區域 {n} 做什麼 塗黑 打馬賽克 模糊 {n} 處塗黑 {n} 處塗黑 {n} 處馬賽克 {n} 處馬賽克 {n} 處模糊 {n} 處模糊 {n} 處區域:{parts}。 {n} 處區域:{parts}。 輕 中 重 {label} — 沿框的短邊大約 {blocks} 個方塊,模糊半徑是它的 1/{blur}。 這裡最細的馬賽克是 {across} x {down} 個 {size} px 的方塊。也就是把下面的東西平均成了 {averages} 個數,全都留在檔案裡。 這處模糊的半徑是 {radius} px。模糊也是一種平均,而清晰文字上的一點點模糊,正是已經被人反推出來過的那種情況。 最小的那處模糊半徑是 {radius} px。模糊也是一種平均,而清晰文字上的一點點模糊,正是已經被人反推出來過的那種情況。 凡是能當文字讀出來的,都塗黑。 瀏覽器沒能把它編碼出來。 寫檔案的時候出了問題:{why} 塗黑後的圖片,{width} × {height} 畫素 {name} — {size},{width} x {height} 沒有標出任何區域,所以這就是同一張圖片重新編碼了一遍。 從塗黑後的畫素寫出來的,所以裡面沒有 EXIF、沒有 GPS、沒有內嵌縮圖,也沒有藏著原圖的圖層。 {a}{b} {a},{b} {n} B {n} KB {n} MB 你的圖片沒有去任何地方。載入了 {total} 個檔案,全都是本站自己的。{platform} 有東西聯絡了 {hosts},而這個工具從不這麼做。值得去查一查。{platform} 本站自己用於廣告、統計和捐贈按鈕的指令碼來自 {hosts} 個主機,它們誰也沒拿到圖片,或圖片裡的一個位元組。 本站自己用於廣告、統計和捐贈按鈕的指令碼來自 {hosts} 個主機,它們誰也沒拿到圖片,或圖片裡的一個位元組。