在 iPhone 上將圖片轉換為 ASCII 是透過 Safari 使用 Image To Ascii 工具完成的,該工具會在目前的瀏覽器分頁中解碼 PNG、JPEG、GIF 或 WebP,將靜態畫格縮放為 10 到 200 欄的字元網格,並根據 W3C 相對亮度將每個取樣像素對應到十個固定密度字元之一。整個流程——檔案解碼、Canvas 重採樣、sRGB 線性化、亮度加權、色階選擇、複製以及 TXT 下載——皆在 iPhone 本機執行,照片從不離開裝置。您開啟頁面後,可透過標準 iOS 選擇器從「照片」或「檔案」中挑選檔案,在輸出寬度欄位輸入整數,也可選擇性地反轉密度色階,讓亮部區域獲得密集字元而非暗部,接著產生預覽,然後複製可見文字或將其另存為純 TXT 檔案。此頁面僅處理單一靜態畫格;它並非 OCR 工具,無法辨識照片中的字母、文字或物件。

image to ascii on iphone
在 iPhone 上將圖片轉為 ASCII:在 Safari 中轉換照片

Safari 頁面勝過 iPhone App 的時機

App Store 上確實有 iPhone 的 ASCII 藝術工具——「Image 2 ASCII Art」即是一例——它們以獨立下載的形式提供,各自佔用儲存空間、需要權限、顯示廣告,有時還有應用程式內購買。Safari 中的瀏覽器頁面則完全跳過安裝步驟:連結可放在訊息、備忘錄或書籤中,點開直接進入可用的工具,關閉後也不會留下 app 圖示或背景程序。此頁面與其他網站一樣,在同一個沙箱化分頁中執行,因此繼承 Safari 既有的檔案存取權限,絕不會要求相機、麥克風或照片圖庫的寫入權限。由於完全不上傳,處理螢幕擷圖、迷因或私人照片的 iPhone 使用者可在沒有任何伺服器持有影像副本的情況下完成轉換。

這種純本機的運作模式,正是此工具在 iPhone 與桌機上運作方式一致的原因:從解碼後的點陣圖到 TXT 檔案的每一步,皆停留在同一個分頁內,受 Safari 標準記憶體與儲存限制所規範,而非由遠端服務決定。

在 iPhone 的 Safari 中將圖片轉換為 ASCII

完整的 iPhone 流程僅需六個步驟,不需要第二個 App、註冊帳號或交由桌機處理。

  1. 在 iPhone 的 Safari 中開啟 Image To Ascii 頁面。
  2. 點選檔案選擇器,從「照片」、「檔案」、iCloud Drive 或其他 iOS 來源中選擇 PNG、JPEG、GIF 或 WebP。若您的來源是直接來自「相機膠卷」的 HEIC 照片,解碼器會予以拒絕,因為 HEIC 不在支援清單中——請從「照片」的分享選單將照片匯出為 JPEG,或先用 JPG to PNG 工具預先轉檔,再產生 ASCII。
  3. 在寬度欄位中輸入介於 10 與 200 之間的整數輸出寬度。以手機尺寸的預覽而言,起始值約 80 可在細節與螢幕可讀性之間取得平衡。
  4. 若您的照片以亮部為主,並希望較暗的區域呈現較密集而非較稀疏的結果,可選擇性地切換反轉色階。
  5. 點選「Generate」,等待預覽算繪完成。瀏覽器會解碼檔案、將其縮放至精確尺寸的 Canvas、每個字元取樣一個像素,並將結果序列化。
  6. 從預覽複製可見文字,或點選「Download」將純 TXT 檔案儲存到「檔案」App 中。TXT 僅包含 ASCII 字元與換行分隔符——不含色彩、中繼資料或原始影像的副本。

若頁面回報限制錯誤,先前的 ASCII 結果會被清除,且不會產生部分結果。編輯寬度、色階方向或來源會立即撤銷舊的文字下載網址,並清除先前的預覽與複製狀態,因此每次點選「Generate」皆以乾淨的狀態重新開始,不會有過期的剪貼簿寫入。

寬度與色階控制項如何改變網格

寬度是唯一必要的數值輸入。頁面將其解析為介於 10 到 200 之間的純 base-10 整數——不接受正負號、單位、小數、前導零簡寫或科學記號。超出此範圍的值會被拒絕而非默默夾擠,因此 9 與 201 都會以明確錯誤失敗。

列數是根據來源影像與所選寬度計算得出:

列數 = round(來源高度 ÷ 來源寬度 × 輸出寬度 × 0.5),最少為一列。

0.5 這個係數假設一般的等寬字型字元格高度約為寬度的兩倍,可讓預覽在螢幕上保持大致比例。以 1500 × 1000 來源、輸出寬度 100 為例:列數 = round(1000 ÷ 1500 × 100 × 0.5) = round(33.33) = 33,序列化大小為 100 × 33 加上 32 個換行分隔符 = 3,332 個字元。反轉色階切換不會改變列數或寬度;它僅翻轉同一組十個字元色階的順序,讓亮部像素對應密集字元、暗部像素對應稀疏字元。

完整的序列化輸出(含所有換行分隔符)上限為 50,000 個字元。高寬度的直立肖像即使寬度本身有效,仍可能超過此預算;在此情況下,頁面會回報限制錯誤,且不會產生預覽或下載。八個固定的 RGBA 案例錨定縮放後的亮度對應,另有 2 × 2 矩陣驗證列中斷、通道順序與反轉色階行為,因此該公式在 Mobile Safari 與其他瀏覽器中的表現一致。

iPhone 照片格式與相關限制

此工具一次僅接受一個 PNG、JPEG、GIF 或 WebP。它無法直接接受 iPhone 預設相機膠卷格式 HEIC。相符的副檔名或 MIME 類型僅通過初步格式檢查;格式錯誤的內容與不支援的編碼設定檔仍會在解碼時失敗,這就是為何將 HEIC 檔案重新命名為 .jpg 仍會被拒絕。頁面在任何 ASCII 產生之前,對影像套用三項獨立限制,並對輸出再套用兩項:

檢查項目上限在 iPhone 上的重要性
編碼後檔案大小15 MiB螢幕擷圖與分享的 JPEG 通常符合;非常大的全景匯出可能會超過。
解碼後邊長8,192 px即便檔案本身不大,ProRAW 或全景靜態影像解碼後仍可能超過此值。
解碼後像素面積24,000,000 px以寬度 × 高度合計防範巨大的解碼緩衝區。
輸出寬度200 字元產生前的欄數硬性上限。
序列化輸出50,000 字元高寬度的直立肖像可能會達到此上限。

超過上限的影像會清除任何先前的 ASCII 結果,且不會產生部分預覽。若螢幕擷圖或全景影像失敗,在產生 ASCII 之前先使用 Image Resizer 縮小尺寸,是最簡單的取得有效結果的方法。

在 iPhone 上閱讀 ASCII 預覽

產生後,預覽會以瀏覽器預設文字樣式算繪。iOS 上的 Safari 預設使用比例式系統字型,因此若要呈現最清晰的效果,應在會採用等寬字型的 App 中檢視結果——例如以等寬字型貼上的「備忘錄」文件,或在「檔案」中以等寬檢視器開啟下載的 TXT。Canvas 縮放步驟使用瀏覽器高品質影像平滑與getImageData來讀取每個字元的 RGBA 樣本,因此在非常小的寬度下,繁忙的照片可能看起來較模糊,因為瀏覽器進行了積極的降取樣。

複製與下載皆使用產生狀態與掛載狀態的防護機制,因此在複製進行中時切換來源影像或編輯寬度,無法將過期的預覽貼入剪貼簿。「Download」按鈕會建立一個小型的 Blob、將本地網址交給 Safari,並在替換與卸載時撤銷該網址,因此 TXT 不會在當前執行階段之外的 Safari 記憶體中逗留。TXT 僅包含 ASCII 字元與換行分隔符;不會保留色彩、透明度、動畫、中繼資料、相機資訊、圖層、嵌入的設定檔或原始壓縮影像。當視覺逼真度或歸檔資訊很重要時,請保留原始照片;顯示結果時,請使用行高緊密的等寬字型。

若想了解另一個類似的 iPhone 瀏覽器內工作流程,可將照片轉為灰階,請參閱在 iPhone 的 Safari 中將照片轉為黑白指南,其中涵蓋對應的控制項。

若您正在權衡各種選項,如何將照片轉成 PDF:從相機膠卷到文件對此有詳細說明。