如何用 Photoshop 連續擷取圖片

說明

這個 Script(MakeSquare.jsx)可自動將目前開啟的 Photoshop 圖片畫布擴充為接近正方形,並保持原解析度與白色背景,適合批次裁切使用。將檔案儲存至 Photoshop 的 Scripts 資料夾並重新啟動程式後,可在「檔案 > 指令碼」中執行。它會根據圖片最長邊,將畫布擴展為 baseUnit(預設為 150px)的倍數,確保所有輸出的圖片尺寸一致,便於後續比對、標記或製作圖檔集。

 

目標

最近手頭上遇到一個麻煩的問題,就是要從一張圖片上將多個圖案擷取下來,除了解析度(dpi)要和原始圖片相同(這代表你不能用擷圖軟體),同時還要盡量讓檔案的尺寸相同,所幸我有個先天的優勢,就是圖片的背景顏色為白色,我可以用擴充版面尺寸來解決問題。
  1. 避免使用者忘記擷取到第幾個圖形
  2. 盡量保持圖片相同尺寸

秘訣

  • 利用 Photoshop 選取 / 複製 / 開新檔案後會記住尺寸的特性
  • 利用 Script 處理寬度跟高度,擴充版面尺寸成正方形
  • 錄製動作(action)且搭配版面擴充 script


示範


Script 腳本

請將以下腳本儲存為 *.jsx ,接下來會介紹它的用途,我先命名叫做 MakeSquare.jsx

實做

app.preferences.rulerUnits = Units.PIXELS;
// 設定標尺單位為像素
app.preferences.rulerUnits = Units.PIXELS;

// 容錯處理:若沒有開啟任何文件,跳出提示
if (!app.documents.length) {
    alert("請先開啟一張圖片!");
    throw new Error("沒有開啟的文件");
}

// 取得目前文件的寬與高
var width = app.activeDocument.width;
var height = app.activeDocument.height;

// 定義畫布調整的基本單位與容忍區間
var baseUnit = 150;      // 最小畫布尺寸單位(輸出大小會是這個的倍數)
var tolerance = 180;     // 尺寸容忍區間(只要小於這就會被調整成 baseUnit)

// 設定白色為背景顏色(當畫布擴展時填入)
var white = new SolidColor(); 
white.rgb.hexValue = "FFFFFF";
app.backgroundColor = white;

// 根據最長邊計算新的畫布尺寸,並向上取整成 baseUnit 的倍數
var newCanvasSize;
if (width >= height) {
    newCanvasSize = Math.ceil(width / tolerance) * baseUnit;
} else {
    newCanvasSize = Math.ceil(height / tolerance) * baseUnit;
}

// 執行畫布擴充(正方形)
app.activeDocument.resizeCanvas(newCanvasSize, newCanvasSize);

// 完成提示
alert("畫布已擴充為正方形:" + newCanvasSize + " x " + newCanvasSize + " 像素");

一、 建立擴充版面的 Script

整個 script 的目的在於作到兩件事情:
  1. 利用最長邊成為新版面的寬與高,讓圖片擴增成正方形版面。
  2. 以 150 pixel 為一個級距,180 pixel 為容許區間,0 ~ 180 pixel 長度以內的圖片都會被調整成 150 x 150 的版面,避免出現小圖片大版面的問題。

二、將 script 加入 Photoshop

  1. 建立 C:\Program Files\Adobe\Adobe Photoshop CS4\Presets\Scripts\
  2. 將 Script(MakeSquare.jsx ) 放入以上路徑,script 才會出現 Photoshop 選單
  3. 重新開啟 Photoshop,你可以在 檔案/指令碼 中看到你的 script 名稱,成功

三、建立動作

  1. 載入一張圖片到 Photoshop
  2. 錄製動作,設定 F2 為動作快速鍵(個人習慣)
  3. 選取→複製→開新檔案→貼上→影像平面化
  4. 插入選單項目,選取檔案/指令碼/你的 script 名稱
  5. 停止錄製,扔掉選取檔案的動作
  6. 利用快速鍵 F2 開始快速裁切

 

 


小泉

喜愛用文字說明自己眼中所見的一切

較新的 較舊

نموذج الاتصال