跳至內容

圖片格式支援 ​

SoFinder 1.0 只會將支援的 Web Browser 可直接嵌入的格式視為圖片。圖片內容會在發布前完整 Decode;有效支援仍取決於已安裝的 Processor:

格式GDImagick FallbackCKEditor 圖片縮圖/編輯
JPEG、PNG、GIF、WebP、BMP是已安裝對應 Coder 時是是
AVIFGD 支援 AVIF 時已安裝對應 Coder 時是是
ICO否已安裝 ICO Coder 時是是

預設 auto Driver 會對每個註冊格式分別選擇 GD;只有 GD 無法 Decode 時才 Fallback 到 Imagick。設定為 gd 或 imagick 時,若對應 Extension 不存在,Container Startup 會失敗。Capability Command 與 /api/config.imageCapabilities 會回報目前伺服器實際可讀取、編輯及產生縮圖的 Codec。

yaml
so_finder:
  image_processing:
    driver: auto # auto、gd 或 imagick
    max_width: 12000
    max_height: 12000
    max_single_frame_pixels: 50000000
    max_frames: 200
    max_total_pixels: 100000000
    memory_bytes: 268435456
    map_bytes: 536870912
    disk_bytes: 1073741824
    threads: 1
    timeout_seconds: 30
    # 可選覆寫;否則使用系統 CJK 字型或經過驗證的字型快取。
    watermark_font: /usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc
    watermark_font_auto_download: true

Imagick 只會接收由 Registry 產生的固定 Coder,永遠不執行自動 SVG、PDF、PostScript、URL 或 Pseudo-protocol Dispatch。Memory、Map、Disk、Thread 與 Time Limit 僅套用於各次操作,完成後還原。公開 Edit Capability 前,會透過有界 Round Trip 驗證 Encoder Availability。

壓縮、轉換與浮水印 ​

「壓縮 / 浮水印」圖片工具在使用者工具列中預設關閉,可在「設定」中啟用。它提供品質可調的重新壓縮、Runtime 支援的 JPEG/PNG/WebP/AVIF 轉換、文字浮水印與圖片浮水印。單批最多處理 100 張已選圖片,並為每項回傳獨立結果。

格式轉換一律另存副本;同格式壓縮與浮水印可另存或覆寫。動畫與多頁圖片會被拒絕以避免靜默遺失 Frame,浮水印圖片仍經過一般資源權限檢查。文字浮水印提供精簡的「介面黑體、清晰黑體、典雅宋體」三種選擇;預設使用介面黑體,保留最初編輯介面的字型風格。所選字型優先使用明確設定的 watermark_font(僅預設樣式)或系統 CJK 字型;若都不存在且啟用 watermark_font_auto_download,只會從官方儲存庫下載目前選取的固定版本 Noto CJK 字型,驗證 SHA-256 後快取至 cache_dir/fonts,並以檔案鎖避免並行重複下載。將此選項設為 false 可禁止自動連線。最終仍無可用字型時,Unicode 文字會回傳 watermark_font_unavailable,不會產生亂碼。

一般非 Web 圖片檔 ​

HEIC、HEIF、TIF 及 TIFF 在 1.0 不屬於 Image Pipeline Format。它們可加入一般 Files Resource 的 Extension Allowlist,並接受和其他一般檔案相同的 Actual-byte、Extension、MIME 與 Active-content Check。SoFinder 不會 Decode、回報尺寸、產生縮圖、編輯或自動轉換這些格式。

不要把這些 Extension 或 MIME Alias 加入只允許圖片的 Resource。既有檔案不會被移除:Browser 會使用一般檔案 Icon 顯示;Image Selection 與 Image Endpoint 會以 unsupported_image 拒絕。File-selection Mode 仍可將其 Public URL 當作下載連結回傳。CKEditor Image QuickUpload 會在寫入前以 image_not_web_embeddable 拒絕。

SVG、PDF、PostScript、PSD、JP2 及 RAW 也不在 Image Pipeline 內。一般 File Resource 允許的格式仍視為普通檔案;要支援安全 Preview 或 Conversion,需要另行設計。

部署後執行 bin/console sofinder:image:capabilities。若已設定的註冊圖片 Extension 沒有有效 Decoder,命令會以失敗狀態結束;部署自動化可使用 --json。

依 MIT 授權條款發布。