Python + Photoshop 自動化實作 (3) 調整尺寸 & 移動圖層位置

Python_Photoshop_automation_case_study_feature_picture_

前言

繼上次的操作,我們今天要來分享如何透過程式讓影像的尺寸做調整。若你都還沒看過這系列的文章可以參考這裡

Photoshop+Python釋放你的雙手來點自動化設計

Python + Photoshop 自動化實作 (1)

Python + Photoshop 自動化實作 (2)

上述文章最後一篇介紹的是開舊檔、全選、複製,然後再到貼入特定檔案的特定圖層上。貼上後會發現,尺寸位置都是錯誤的。

因此我們今天就來介紹如何調整尺寸,以及如何移動圖層的位置

實際上路

調整尺寸

這是一個極為常用的指令,在使用Python 系統DOM方法或用下面pythoncom的方式來控制photoshop 時,要記住一個觀念 – Pythoncom控制物件是由大到小

import comtypes.client
import pythoncom

控制是由大到小的概念是,程式 => 文件 => 圖層 =>圖層參數操作 & 特效 

而像是調整影像尺寸大小的指令是針對整個文件,所以我們下指令的時候,就直接用doc.ResizeImage(長 , 寬 , 解析度 , 取樣方法),括號裡面也可以只有輸入長,寬 就好。

doc.ResizeImage(Width=2048,
                Height=2048,
                Resolution=300,
                ResampleMethod=8)
refDoc.ResizeImage(1024,768)

是不是非常簡單呢? 

這邊跟大家分享一個小坑,因為Resize這種操作,基本上有時候不會秒完成,所以記得使用python的time套件,讓它sleep(2) 睡個一兩秒,連續的自動化動作就比較不會出錯囉。

位移圖層 / 移動圖層

移動圖層在中文裡面的意思就是移動,我們不會想太多,但是在python控制photoshop時,若您去爬文關鍵字若下move layer,只會找到大量的資訊在講移動圖層順序的事情。

而我們這邊想做的,是把圖層內貼上的影像往上、或往左移動一些而已。這時候你要用的爬文搜尋關鍵字叫做 Translate,中文稱為位移;不過沒關係,你已經可以直接參考下面的程式碼,就能使用圖層的位移了。Layer Translate

#先將尺寸單位改成pixel
psApp.Preferences.RulerUnits = psPixels
#再給作動的圖層位移 x , y 值
refDoc.activeLayer.translate(X,Y)

但是要注意,x 負數是往左邊位移,y負數則是往上位移。其實這個 translate(x,y)就是我們在photoshop Properties視窗裡面看到的 x , y 的值是一樣的。

所以聰明的人就會先用這個來做輸入程式的數據囉。

結論:

今天分享了兩個常用的PS指令,相信初學的人會覺得,明明只是一個Ctrl+C , Ctrl+V的動作,在程式控制的寫法竟然這麼麻煩。

要知道,其實Photoshop背後是更複雜的程式所堆砌出來的,但我們透過Pytohn寫好的程式,卻可以利用在大量生成的圖片中,只要數量夠多、時間拉長,這樣撰寫程式反而節省更多時間。非常值得設計師或開發人員投資時間學習。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *