第 76 篇 · 台北 一份持續書寫的工作日誌

讓 AI 封面圖自動加上正體中文標題

你有沒有試過讓 AI 在圖片上寫中文?結果通常慘不忍睹——不是缺筆畫就是變亂碼,要不然直接變成日文漢字。

這是目前所有主流 AI 圖片生成器(Gemini、DALL-E、Midjourney)的共同弱點:它們對中文字的渲染能力還是很不穩定。英文沒問題,但換成中文,尤其是正體中文,出來的結果幾乎沒辦法直接用。

Day 74 分享了怎麼讓 Claude Code 自動用 Gemini 網頁版生圖。但封面圖需要有標題文字,那怎麼辦?

我的做法是:拆成兩步。

第一步:讓 AI 只負責畫插圖

在給 Gemini 的 prompt 最後,我一定會加上 "No text, no words, no letters in the image"。讓 AI 專心畫它擅長的部分——構圖、配色、氛圍。文字的事,完全不要交給它。

第二步:用程式在本機疊上中文標題

圖片下載回來之後,我用 Node.js 的 sharp 套件搭配 SVG,在本機把標題渲染上去。

原理其實很簡單:

  1. 讀取圖片尺寸,根據寬高算出合適的字體大小(響應式設計,不同尺寸的圖片都適用)
  2. 產生一個 SVG,裡面包含:底部漸層(從透明到半透明黑色)、白色標題文字、文字陰影
  3. 用 sharp 把 SVG 疊合到圖片上,輸出最終結果

字體用的是 macOS 內建的 PingFang TC(蘋方-繁),這是 Apple 為繁體中文設計的系統字體,品質非常高,完全不需要額外安裝任何字體。

處理混合文字的小細節

因為標題通常是中英混合(像 "Day 76 讓 AI 封面圖自動加上正體中文標題"),程式會估算每個字的寬度——中文字大約是 1em,英文字母大約 0.55em——然後決定要不要自動換行。這樣不管標題多長,都不會超出圖片邊界。

整合成一鍵流程

我把這個疊字腳本整合進了 Claude Code 的 skill 裡。現在整個生封面圖的流程是全自動的:

  1. 讀取文章內容,自動提取標題
  2. 根據文章主題,自動產生英文 image prompt
  3. 讓 Gemini 生成插圖(不含文字)
  4. 下載圖片後,用 sharp + SVG 在本機疊上正體中文標題
  5. 完成

從輸入一句 "幫我生封面圖" 到拿到成品,大概一分鐘。

為什麼不直接用 Canva 或 Photoshop?

因為我追求的是全自動化。手動開 Canva 加文字當然可以,但每天都要做一次的事情,就值得花時間自動化。而且這個做法的好處是完全可程式化——換個標題、換個字體、換個配色,改一行參數就好。

這個思路不只適用於正體中文。日文、韓文、簡體中文,只要本機有對應的字體,都能用同樣的方式處理。核心概念就是:讓 AI 做它擅長的(畫圖),讓本機程式做它擅長的(渲染文字),各司其職。

下次如果你想讓 AI 幫你做有中文字的圖片,記得:不要讓 AI 直接寫字,先拿到乾淨的插圖,再用程式把字加上去。這是目前最穩定也最好看的做法。

延伸閱讀 看完整 137 篇 →