在 Windows 上把圖片轉成 ASCII,指的是在 Edge、Chrome 或 Firefox 內,把 PNG、JPEG、GIF 或 WebP 轉成一個有邊界範圍的純文字字元方格——不需要命令列、不需要安裝、不需要系統管理員權限,也不用上傳任何東西到伺服器。列數依循公式 round(sourceHeight ÷ sourceWidth × outputWidth × 0.5),因為一般等寬字元的字形高度大約是寬度的兩倍,而完整序列化的結果會嚴格限制在剛好 50,000 個字元,因此工具不會默默截斷輸出。圖片轉 ASCII 工具會在本地端執行每一步:瀏覽器解碼檔案後,將其繪製到大小剛好符合所要求欄數與列數的 Canvas 上,每個輸出字元讀取一個 RGBA 採樣,將 alpha 與白色合成,將 sRGB 線性化,再把每個相對亮度值四捨五入到從 @ 開始、依序遞增到空格的十級漸進符號之一。寬度接受 10 到 200 之間的整數,漸進方向可以反轉,而任何對寬度、漸進或來源的修改都會清除先前的結果。

image to ascii on windows
在 Windows 上把圖片轉成 ASCII:跳過命令列

為什麼 Windows 使用者選擇以瀏覽器為基礎的 ASCII 工具

大多數鎖定 Windows 的現成 ASCII 轉換器,都是以命令列執行檔或 Python 腳本的形式提供,需要 pip 安裝、ImageMagick,或一套可用的建置工具鏈。這些工具能用,但前提是你對終端機、環境變數和套件更新都得心應手。許多 Windows 使用者——特別是那些使用鎖定嚴格、禁止安裝 EXE 檔的工作機器的使用者——會希望有個工具能在已經開啟的分頁中直接執行。以瀏覽器為基礎的圖片轉 ASCII 替代方案 跳過了所有安裝步驟:它使用瀏覽器內建的圖片解碼器,在 Canvas 上執行縮放,完全不需要系統管理員權限。同時也不需要另外把執行檔加入白名單、不必關閉防毒警告,事後也沒有殘留的 DLL 檔要清理。對一次性把螢幕截圖、標誌或照片轉成文字的需求來說,這是在 Windows PC 上最實際、最快速的途徑。

這個工具能處理什麼(又會拒絕什麼)

圖片轉 ASCII 一次接受一張圖片,格式為 PNG、JPEG、GIF 或 WebP,並透過瀏覽器對實際解碼後的點陣圖(而非僅憑副檔名或 MIME 標頭)實施嚴格的尺寸與解析度限制。

限制項目數值
接受的格式PNG、JPEG、GIF、WebP
編碼後的檔案大小最高 15 MiB
解碼後的邊長最高 8,192 像素
解碼後的總面積最高 24,000,000 像素
輸出寬度10 到 200 個整數字元
序列化輸出上限50,000 個字元(含換行字元)

相符的副檔名或 MIME 類型僅通過最初的格式篩選。格式錯誤的內容與不支援的編碼設定檔,仍會在解碼階段失敗,工具會清除任何先前的 ASCII 結果,而不會產生不完整的結果。如果 GIF 是動畫的,工具會立即對解碼後的影格進行快照,避免你在編輯設定時預覽持續變動。

在 Windows 上把圖片轉成 ASCII:逐步教學

在 Edge、Chrome 或 Firefox 中開啟工具,然後依照下列步驟處理單一張圖片:

  1. 從「圖片」資料夾、檔案總管,或最近的下載位置中,挑選一個 PNG、JPEG、GIF 或 WebP 檔案。檔案大小必須為 15 MiB 或更小,解碼後每邊必須在 8,192 像素以內,總面積必須在 24,000,000 像素以內。
  2. 輸入介於 10 到 200 之間的純整數作為輸出寬度。超出此範圍的值會被拒絕而非強制限制,而輸入欄位不接受正負號、單位、小數、科學記號或前置零。
  3. 決定是否要反轉密度漸進。在預設模式下,圖片的暗部會變成如 @ 這類密集字元,亮部則變成空格;反轉模式會把這個對應關係顛倒過來,使亮部變成密集字元、暗部變成稀疏字元。
  4. 產生 ASCII 結果。瀏覽器會使用標準的 drawImage 縮放路徑,把來源影格繪製到大小剛好符合所要求欄數與列數的 Canvas 上,每個輸出字元讀取一個 RGBA 採樣,將 alpha 與白色合成,將 sRGB 線性化,再把每個亮度值四捨五入到十級漸進符號之一。
  5. 把顯示的文字複製到剪貼簿,或下載本地端的 TXT 檔。TXT 檔只包含 ASCII 字元與換行分隔符;不會保留顏色、透明度、動畫、中繼資料,或原始的壓縮圖片。
  6. 變更寬度、漸進方向或來源檔案即可重新開始。任何修改都會撤銷舊的文字下載網址,並清除先前的結果、複製狀態與錯誤訊息。

輸出寬度、漸進方向與長寬比

此工具不允許你直接選擇列數。為了維持來源長寬比並加入明確的字元格修正,列數會自動計算,因為一般等寬字元的字形高度大約是寬度的兩倍。公式如下:

列數 = round(來源高度 ÷ 來源寬度 × 輸出寬度 × 0.5)

以 1920×1080 的來源搭配輸出寬度 120 為例,計算結果為 round(1080 ÷ 1920 × 120 × 0.5) = round(33.75) = 34 列。該組合的序列化大小為寬度 × 列數 加上 列數 − 1 個換行字元,亦即 120 × 34 + 33 = 4,113 個字元——遠低於 50,000 字元的上限。較高的來源圖片會更快達到這個上限,當計算結果會超過上限時,工具會回報限制訊息,且不會產生預覽或下載檔案。

0.5 的乘數是實用的預覽近似值,而非對你最終字體的精確量測。不同的等寬字型、行高、終端機、編輯器、縮放等級或字距設定,都可能使下載後的文字藝術在貼到其他地方時看起來變得更高或更矮。

可能讓 Windows 轉換作業中斷的限制

在任何 ASCII 結果出現之前,必須通過三項獨立的檢查。編碼後的檔案必須為 15 MiB 或更小。在瀏覽器實際解碼後,每一邊必須為 8,192 像素或更小,解碼後的總面積必須為 24,000,000 像素或更小。這些限制是為了避免瀏覽器遇到一個解壓後會膨脹成數 GB 記憶體的小型壓縮檔。寬度的解析規則相當嚴格:10 與 200 可以接受,但 9、201、「10.0」、「 10 」、「010」、「+10」與「1e2」都會失敗。序列化輸出上限 50,000 個字元同樣是嚴格的——50,000 可以接受,50,001 則會被拒絕,因此即使是有效寬度下的極高長寬比,仍然可能遭到拒絕。不支援或超出限制的圖片會清除任何先前的 ASCII 結果,且不會產生不完整的結果。

讓 Windows 上的 ASCII 藝術顯示更清晰的訣竅

把複製的文字貼到使用真正等寬字型(例如 Cascadia Mono、Consolas 或 Courier New)的程式,並設定緊湊的行高。Windows 上大多數編輯器預設會在行之間加上額外的垂直空間,這會讓文字藝術比預覽顯示的更高。請關閉自動換行,使每一列剛好只佔一行。如果你是儲存成 TXT 檔之後再開啟檢視,請用記事本或 Windows 終端機開啟,不要用可能會替換成比例字型的所見即所得編輯器。請把原始圖片與 TXT 檔保存在一起——TXT 檔只包含 ASCII 字元與換行分隔符,沒有顏色、透明度、動畫、中繼資料或內嵌的設定檔。

本地端處理:什麼都不會離開你的 Windows PC

所有解碼、Canvas 處理、亮度計算、複製與文字下載檔案的建立作業,都在你的 Windows PC 上目前開啟的瀏覽器分頁中進行。圖片、其像素、產生的文字與檔名都不會被上傳。如果你想親自驗證,可以在載入工具後中斷網路——包括重新下載在內的每一步都仍然能正常運作。用於後備解碼的物件網址會在成功、失敗、替換或卸載時撤銷,而下載網址會在替換結果或關閉頁面時撤銷。