圖片轉分層TIF圖

👤 dragon928 📦 v1.1.1 ⭐ 4.5 ⬇️ 1K 下載
🎨 設計多媒體 免費

📖 技能介紹

img2layered-tiff — 圖片轉分層 TIFF / PSD

將 JPG/PNG 格式圖片轉換為分層資訊的 TIFF / PSD 格式檔案

小蔥技能站7w4.net發現了升級外掛。

概述

本 Skill 將常見的點陣圖格式(JPG、PNG、BMP、WebP)轉換為多頁分層 TIFF 檔案或 Photoshop PSD 檔案。每個圖層在輸出檔案中獨立儲存。

輸出格式區別:

格式 說明 Photoshop 中檢視方式
TIFF (預設) 多頁 TIFF,每頁一個圖層 「視窗 > 圖層」或「匯入 > 影片幀到圖層」
PSD Photoshop 原生格式 圖層面板直接可見每個圖層

推薦: 如果你需要在 Photoshop 中直接看到分層效果,請使用 --format psd

典型使用場景: - 印刷前分色:RGB → CMYK 四色通道分離 - 印刷質量檢測:檢查各色版網點分佈 - 科學影像分析:分離各通道用於獨立分析 - 透明通道提取:匯出 Alpha 通道用於合成 - 灰度參考:生成灰度版用於對比 - 圖形邊緣提取: 提取圖片中輪廓清晰的圖形/Logo/線條,用於向量化參考、印刷版檢查、形狀分析 - Photoshop 分層交付: 輸出 PSD 檔案,直接在 Photoshop 圖層面板中檢視各通道

分層模式

模式 說明 圖層
rgb RGB 三通道分離 Red, Green, Blue (灰度)
rgba RGBA 四通道分離 Red, Green, Blue, Alpha (灰度)
cmyk CMYK 四通道分離 Cyan, Magenta, Yellow, Black (灰度)
alpha 彩色 + Alpha 通道 Composite (彩色), Alpha (灰度)
gray+color 灰度 + 彩色原圖 Grayscale (灰度), Color (彩色)
hsl HSV 三通道分離 Hue, Saturation, Lightness (灰度)
lab CIE Lab 三通道分離 L, a, b* (灰度)
edge-extract 邊緣清晰圖形提取 Composite (彩色), Canny-Edge (灰度), Gradient-Mag (灰度), Binary-Edge (灰度)

edge-extract 模式詳解

該模式使用三種經典邊緣檢測演算法,將圖片中的清晰輪廓/圖形提取為獨立圖層:

圖層 演算法 說明
Composite 原始彩色圖,作為參考
Canny-Edge Canny 邊緣檢測 最精準的邊緣線(白色=邊緣,黑色=背景),適合提取清晰輪廓
Gradient-Mag Sobel 梯度幅值 邊緣強度熱力圖,邊緣越亮越強,適合觀察漸變過渡區域
Binary-Edge 拉普拉斯 + 二值化 對銳利輪廓最敏感的演算法,適合提取 Logo、文字等硬邊緣圖形

閾值控制 (--edge-threshold, 1-255, 預設 30): - 低值 (10-20):提取更多細節邊緣,適合複雜圖形 - 中值 (30-60):平衡模式,適合大多數場景 - 高值 (80-150):只保留最銳利的輪廓,適合簡潔圖形/Logo

依賴安裝

pip install Pillow numpy tifffile imagecodecs

# PSD 輸出需要額外安裝 pytoshop
pip install pytoshop

# 可選:安裝 scipy 可加速邊緣提取的高斯平滑
pip install scipy

觸發詞

當用戶提到以下需求時,自動觸發此 Skill: - "圖片轉 TIFF"、"JPG 轉 TIFF"、"PNG 轉 TIFF" - "分層 TIFF"、"多頁 TIFF" - "圖片轉 PSD"、"分層 PSD"、"PSD 圖層" - "通道分離"、"RGB 分離"、"CMYK 分色" - "Alpha 通道提取"、"透明通道匯出" - "影像分色"、"分色 TIFF" - "邊緣提取"、"圖形提取"、"輪廓提取"、"邊緣檢測"、"edge extract" - "TIFF 不分層"、"PSD 圖層看不到"(問題排查場景)

核心指令碼

scripts/img2layered_tiff.py

單檔案轉換

# 基本用法 - RGB 三通道分離 (TIFF 格式)
python scripts/img2layered_tiff.py photo.jpg --mode rgb

# CMYK 四色分色(印刷用)
python scripts/img2layered_tiff.py photo.jpg --mode cmyk --dpi 300 --compression lzw

# 提取 Alpha 透明通道
python scripts/img2layered_tiff.py logo.png --mode alpha

# 灰度 + 彩色雙圖層
python scripts/img2layered_tiff.py photo.jpg --mode gray+color

# 指定輸出路徑
python scripts/img2layered_tiff.py photo.jpg --mode rgb -o output/color_split.tif

# 邊緣圖形提取(預設閾值 30)
python scripts/img2layered_tiff.py logo.png --mode edge-extract

# 邊緣提取 + 高閾值(只保留最銳利的輪廓)
python scripts/img2layered_tiff.py logo.png --mode edge-extract --edge-threshold 80

# 邊緣提取 + 低閾值(提取更多細節)
python scripts/img2layered_tiff.py photo.jpg --mode edge-extract --edge-threshold 10

# ★ PSD 格式輸出(Photoshop 圖層面板直接可見)
python scripts/img2layered_tiff.py photo.jpg --mode rgb --format psd
python scripts/img2layered_tiff.py logo.png --mode rgba --format psd
python scripts/img2layered_tiff.py photo.jpg --mode cmyk --format psd
python scripts/img2layered_tiff.py logo.png --mode edge-extract --format psd

批次轉換

# 批次處理當前目錄所有 JPG
python scripts/img2layered_tiff.py *.jpg --mode rgb

# 批次處理並指定輸出目錄
python scripts/img2layered_tiff.py *.png --mode cmyk --output-dir ./cmyk_output

# 萬用字元 + 自定義 DPI
python scripts/img2layered_tiff.py images/*.jpg --mode alpha --dpi 300

# 批次輸出 PSD 格式
python scripts/img2layered_tiff.py *.jpg --mode rgb --format psd --output-dir ./psd_output

壓縮選項

壓縮方式 引數 特點
無壓縮 --compression none 檔案最大,相容性最好
LZW --compression lzw (預設) 無損,壓縮比中等,相容性好
Deflate --compression deflate 無損,壓縮比較高
JPEG --compression jpeg 有損,檔案最小,灰度圖層推薦

列出所有模式

python scripts/img2layered_tiff.py --list-modes

CLI 引數完整說明

positional arguments:
  inputs                  輸入圖片路徑 (支援多檔案和萬用字元 *.jpg/*.png)

optional arguments:
  --mode, -m              分層模式: rgb/rgba/cmyk/alpha/gray+color/hsl/lab/edge-extract (預設: rgb)
  --format, -f            輸出格式: tiff/psd (預設: tiff; psd 需要安裝 pytoshop)
  --output, -o            輸出檔案路徑 (單檔案時有效)
  --output-dir            輸出目錄 (批次處理時有效)
  --compression, -c       壓縮方式: none/lzw/deflate/jpeg (預設: lzw,僅 tiff 格式)
  --dpi                   輸出 DPI (預設保留原圖 DPI,僅 tiff 格式)
  --edge-threshold        邊緣提取閾值 1-255 (預設: 30,僅 edge-extract 模式)
  --list-modes            列出所有分層模式

在 AI Agent 中的使用指南

當用戶請求圖片轉分層 TIFF 時,Agent 應:

  1. 確認輸入檔案:獲取使用者提供的圖片檔案路徑
  2. 推薦模式:根據使用者場景推薦合適的分層模式
  3. 印刷/分色 → cmyk
  4. 通道分析 → rgbrgba
  5. 透明度處理 → alpha
  6. 灰度對比 → gray+color
  7. 邊緣/輪廓提取edge-extract
  8. 執行轉換:呼叫核心指令碼
  9. 報告結果:告知輸出路徑、檔案大小、圖層數量

Python API 呼叫

import sys
sys.path.insert(0, "path/to/skill/scripts")
from img2layered_tiff import convert_single, convert_batch

# 單檔案 TIFF 轉換
result = convert_single(
    input_path="photo.jpg",
    mode="cmyk",
    compression="lzw",
    dpi=300,
)
print(f"輸出: {result}")

# 單檔案 PSD 轉換(Photoshop 圖層面板可見)
result = convert_single(
    input_path="photo.jpg",
    mode="rgb",
    output_format="psd",
)
print(f"輸出: {result}")

# 邊緣提取(自定義閾值)
result = convert_single(
    input_path="logo.png",
    mode="edge-extract",
    edge_threshold=50,
)
print(f"輸出: {result}")

# 批次轉換 PSD
results = convert_batch(
    input_paths=["a.jpg", "b.png"],
    mode="rgb",
    output_dir="./output",
    output_format="psd",
)

技術細節

  • TIFF 格式:使用 tifffile 庫寫入標準多頁 TIFF,每頁對應一個圖層
  • CMYK 轉換:優先使用系統 ICC Profile(USWebCoatedSWOP.icc 等)進行精確色彩轉換,回退到 PIL 內建轉換
  • DPI 處理:預設保留原圖 EXIF 中的 DPI 資訊,可通過 --dpi 引數覆蓋
  • 檔案命名:預設輸出為 {原名}_{模式}.tif,如 photo_cmyk.tif
  • 壓縮:預設使用 LZW 無失真壓縮,兼顧檔案大小和相容性

輸出檔案說明

TIFF 格式

  • 多頁結構,每頁一個圖層
  • 第一頁包含描述後設資料(原始檔資訊、圖層數量、尺寸等)
  • 每頁包含 DocumentName 標籤標註圖層名稱
  • 支援 Photoshop、GIMP、ImageJ、Affinity Photo 等軟體開啟
  • 在 Photoshop 中可通過「視窗 > 圖層」檢視各頁面,或使用「檔案 > 匯入 > 影片幀到圖層」

PSD 格式

  • Photoshop 原生格式,圖層面板直接可見每個圖層
  • 支援 RGB/RGBA 灰度和彩色圖層
  • RGBA 圖層包含透明通道(channel -1)
  • 在 Photoshop 中開啟後即可在圖層面板中看到所有通道分離結果
  • 注意:PSD 輸出使用 Raw 無壓縮(檔案稍大),因為 pytoshop 的 PackBits Cython 擴充套件在 Windows 上未編譯

版本歷史

  • v1.3.0 (2026-04-28)
  • 新增 PSD 輸出格式(--format psd),圖層在 Photoshop 圖層面板中直接可見
  • 使用 pytoshop 庫生成標準 PSD 檔案,支援 RGB/RGBA 灰度和彩色圖層
  • RGBA 圖層自動包含透明通道(channel -1)
  • pytoshop 為可選依賴,未安裝時自動回退提示
  • 新增 --format / -f CLI 引數
  • 修正 hsl 模式圖層名 "Value" → "Lightness"(與實際輸出一致)
  • 8 種模式 TIFF + PSD 全量回歸測試通過

  • v1.2.0 (2026-04-28)

  • 效能大幅最佳化:所有卷積操作改為 numpy 向量化(stride_tricks + einsum),edge-extract 模式提速約 10-50 倍
  • 非極大值抑制改為向量化實現(角度量化 + 方向切片)
  • 滯後邊緣跟蹤改用 PIL MaxFilter 膨脹替代逐畫素迴圈
  • 消除全域性變數,edge_threshold 改為函式引數傳遞
  • 清理無用 import 和未使用變數
  • 程式碼量從 767 行精簡到 ~550 行
  • v1.1.0 (2026-04-28)
  • 新增 edge-extract 邊緣清晰圖形提取模式
  • 三種演算法:Canny 邊緣檢測、Sobel 梯度幅值、拉普拉斯二值化
  • 新增 --edge-threshold 引數控制邊緣靈敏度
  • 純 numpy 實現,scipy 為可選加速依賴
  • 總計 8 種分層模式
  • v1.0.0 (2026-04-28)
  • 初始版本
  • 支援 7 種分層模式
  • 支援批次轉換
  • 支援 LZW/Deflate/JPEG 壓縮
  • 支援自定義 DPI
  • CMYK ICC Profile 精確轉換

🤖 AI 評測

這個Skill功能很實用,能把圖片分離成多個圖層,還能提取邊緣輪廓,文件說明詳細,容易上手。主要優點是支援多種分層模式和Photoshop直接檢視的PSD輸出。不足是缺少示例圖片參考效果,也沒有測試覆蓋。總體質量良好,適合設計師和需要影像分析的使用者使用。

📊 多維度評分

適應性4.7
規範性4.3
有效性4.7
可靠性4.4
可信度4.8

📁 包含檔案 (4 個)

📄 SKILL.md 10.7 KB
📄 _meta.json 797 B
📄 scripts/img2layered_tiff.py 32.1 KB
📄 skill.json 658 B