跳至主要內容
Lizely

圖片轉為 ASCII 字元

解碼 PNG、JPEG、GIF 或 WebP,並將一張靜態影格轉為有界、可複製、可下載的 ASCII 藝術作品。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇一個 PNG、JPEG、GIF 或 WebP 檔案,且必須符合可見的編碼與解碼限制。
  2. 2.輸入一個從 10 到 200 的整數輸出寬度,並可選擇反轉固定密度梯度。
  3. 3.產生完整的 ASCII 結果,然後複製可見文字或下載本機 TXT 檔案。

關於圖片轉為 ASCII 字元

圖片轉為 ASCII 會將解碼後點陣圖的可見灰階轉為普通文字字元的網格。請選擇 PNG、JPEG、GIF 或 WebP 圖片,設定輸出寬度從 10 到 200 字元,並產生本機預覽與純文字下載。固定密度梯度從 @ 開始,漸進轉為較亮的字元,最終到空格。反轉模式則會讓亮區獲得密集字元、暗區獲得稀疏字元。這是一種視覺上的 ASCII 藝術,並非文字識別(OCR)、轉錄、字幕或對影象中已存在文字的提取。

瀏覽器必須實際解碼檔案後才能進行轉換。相符的副檔名或 MIME 類型只能通過初步格式篩選;格式錯誤的內容和不支援的編解碼器設定檔,仍會在解碼時失敗。可用時會使用 createImageBitmap,並在替換圖片、過時作業完成或元件卸載時關閉產生的 ImageBitmap。若該解碼器無法處理檔案,系統會建立短期存在的本機 Object URL 以載入影像元素,並在載入或失敗後將其撤銷。備援方式會立即將解碼後的影格擷取至畫布,避免動畫 GIF 在編輯設定時持續變化。

來源尺寸與輸出控制獨立驗證,因此在非同步解碼進行中改變寬度,不會導致舊寬度決定影象是否被接受。編碼檔案的尺寸最多為 15 MiB。解碼後的任一邊最多為 8,192 像素,解碼區域最多為 24 百萬像素。這些限制可保護瀏覽器免受意外龐大解碼記憶體的影響,即使原始壓縮檔案本身很小。不支援或超出限制的影象會清除先前的 ASCII,且不會產生部分結果。

輸出行數會保留來源的長寬比例,並加入明確的字元單元修正。一般等寬字元的單元高度通常約為寬度的兩倍,因此行數計算會將影象高度除以影象寬度,再乘以輸出寬度,最後乘以 0.5。結果會四捨五入至最接近的整數行,且最少為一。此 1:2 的假設僅為實際預覽的近似值,並非對使用者最終所使用的字型的測量。若使用不同字型、行高、終端、編輯器、縮放或字元間距,下載的藝術作品可能看起來較高或較矮。

原始影格被繪製至一個尺寸與預計 ASCII 列與行數完全相符的小畫布中。畫布首先被填滿白色,以便透明區域有明確的背景。瀏覽器的高品質影像平滑處理執行縮放,之後 getImageData 會為每個輸出字元返回一個 RGBA 範例。重新取樣品質由瀏覽器實現,不同引擎之間可能會有微小差異,尤其是在高頻率圖案或極度壓縮的情況下。因此,黃金測試會將重點放在縮放後的像素至字元演算法上,而非聲稱所有瀏覽器產生的重新取樣像素都相同。

每個取樣的 sRGB 值會使用 W3C 的相對亮度轉換函式進行線性化處理。亮度隨後計算為 0.2126 紅色加上 0.7152 綠色再加上 0.0722 藍色。在應用此公式前,透明度會先疊加在白色之上。所得值從零到一之間會乘以九並四捨五入,以選擇十種階梯中的一種。八個可執行的 RGBA 黃金案例涵蓋黑色、白色、中灰、所有三種 sRGB 原色、完全透明與半透明。一個 2 乘 2 矩陣還會驗證行間斷、通道順序以及反向階梯行為。

輸出絕不會靜默截斷。請求的寬度必須為純粹的基數-10 整數,不得包含符號、單位、空白字元、小數點、前導零形式或科學記號。寬度 10 與 200 可接受;超出此範圍的值將直接失敗,不會被截斷。完整序列化輸出最多可包含 50,000 個字元,包括每行之間的換行分隔符。精確的輔助測試接受 50,000 且拒絕 50,001。高寬比的影象即使在有效寬度下也可能超出此預算,此時工具將報告限制並不會產生預覽或下載。

編輯寬度、斜率方向或來源會立即撤銷舊的字元下載 URL,並清除先前結果、複製狀態與錯誤。複製操作使用產生與掛載狀態防護,因此較舊的剪貼簿承諾無法在後續編輯後恢復為已複製。複製計時器在被取代或解除安裝時會進行識別檢查並取消。下載物件 在取代或解除安裝時會被撤銷。來源物件 僅用於備用解碼,成功、錯誤、取代或解除安裝時也會被撤銷。

所有解碼、畫布運算、亮度計算、複製與文字下載建立均在當前瀏覽器分頁中進行。圖片、像素、產生的文字與檔名均不會上傳至 Lizely。TXT 輸出僅包含 ASCII 字元與換行符號;不保留色彩、透明度、動畫、後設資料、相機資訊、圖層、嵌入式配置檔案或原始壓縮圖片。顯示結果時請使用等寬字型並設定緊密行高,若視覺準確度或存檔資訊重要,請保留原始圖片。

方法與來源

驗證一個 PNG、JPEG、GIF 或 WebP,透過編碼大小與瀏覽器實際解碼進行驗證,然後獨立強制 8,192 像素邊界與 24 百萬解碼像素。建議使用 createImageBitmap 並在取代、過期完成或解除安裝時關閉;否則使用暫時撤銷的 Object URL 並快照解碼靜態畫面。從 10 到 200 解析寬度為嚴格整數,計算行數為 round(height/width × outputWidth × 0.5),計算序列化大小為 width × 行數加上行數 − 1 空白字元,並拒絕總文字超過 50,000 且不進行截斷。繪製至白色、精確輸出大小的 畫布,讀取 RGBA,將 Alpha 透明度疊加在白色上,線性化 sRGB,計算 W3C 相對亮度,並在固定十字元梯度或其精確反向中四捨五入亮度。複製與 TXT Blob 工作使用產生、時間識別、已掛載狀態與 URL 清除防護。八個精確像素黃金加上矩陣與精確限制測試涵蓋公式、行序列化、反向行為、檔案、來源像素、尺寸、寬度與輸出字元邊界。

常見問題

這工具會從圖片中讀取文字嗎?
不會。這不是文字識別(OCR)。它會將縮放後的像素亮度對映到固定字元梯度上,並不會辨識字母、詞語、物件或意義。
輸出高度是如何計算的?
行數為四捨五入的(來源高度 / 來源寬度 × 輸出寬度 × 0.5),且至少為一行。0.5 的係數約代表一個等寬字元單元,其高度約為寬度的兩倍。
透明像素會怎麼處理?
它們會先在白色背景上合併,再進行相對亮度計算,因此完全透明的區域會像白色一樣在正常梯度中顯示。
我的圖片和 ASCII 輸出會上傳嗎?
不會。解碼、縮放、像素讀取、對映、複製與 TXT 建立全部在當前瀏覽器標籤頁中本機完成。

圖片工具 使用指南

查看全部