影像軟體

Photoshop智慧縮圖Script

3 十一月 , 2008  

我為了把圖放到手機,自己寫了一個Photoshop的Script,功能如下

  1. 自動判斷直橫圖,把直圖轉橫
  2. 縮圖後自動按照手機螢幕裁切多的部份
  3. 把色彩管理轉換成sRGB,因為我在電腦都存成ProRGB

Script的內容如下,分享給大家用,如果你的手機、PSP、iPOD螢幕大小不一樣,只要改一下內容即可使用,我目前的手機是K610i解析度是220×176,這個Sctipt以K610i為例製作。

if (app.documents.length == 0)
{
var docRef = app.documents.add();
}
else
{
var docRef = app.activeDocument;
}

var PW = 220; // 修改縮小後螢幕寬度
var PH = 176; // 修改縮小後螢幕高度
var PRESOLUTION = 72;
var boundTop;
var boundLeft;
var boundRight;
var boundBottom;

app.preferences.rulerUnits = Units.PIXELS;

// 得到目前圖片的寬跟高-http://album.ioi.tw/
var dh = docRef.height;
var dw = docRef.width;

// 自動把直圖轉橫-http://album.ioi.tw/
if( dh > dw)
docRef.rotateCanvas(-90);

// 旋轉後再抓一次目前圖片的寬跟高-http://album.ioi.tw/
var dh = docRef.height;
var dw = docRef.width;

// 抓出比較長的比值-http://album.ioi.tw/
var Ratio = (dw/PW)/(dh/PH)

// 依照短邊等比例縮小-http://album.ioi.tw/
if (Ratio > 1)
{
docRef.resizeImage(null, PH, PRESOLUTION, ResampleMethod.BICUBICSHARPER);
// 縮小後再抓一次寬高-http://album.ioi.tw/
var dh = docRef.height;
var dw = docRef.width;
boundTop = 0;
boundLeft = ((PW-dw)/2);
boundBottom = PH;
boundRight = (PW+((PW-dw)/2));
bounds = new Array(boundLeft,boundTop,boundRight,boundBottom);
docRef.crop(bounds);
}

if (Ratio < 1)
{
docRef.resizeImage(PW, null, PRESOLUTION, ResampleMethod.BICUBICSHARPER);
// 縮小後再抓一次寬高-http://album.ioi.tw/
var dh = docRef.height;
var dw = docRef.width;
boundTop = ((PH-dh)/2);
boundLeft = 0;
boundBottom = (PH+((PH-dh)/2));
boundRight = PW;
bounds = new Array(boundLeft,boundTop,boundRight,boundBottom);
docRef.crop(bounds);
}

if (Ratio = 1)
{
docRef.resizeImage(PW, PH, PRESOLUTION, ResampleMethod.BICUBICSHARPER);
}

// 色彩管理改成sRGB-http://album.ioi.tw/
docRef.convertProfile(“sRGB IEC61966-2.1″, Intent.RELATIVECOLORIMETRIC, true, true);

把以上的code存成.jsx,存在C:\program Files\Adobe Photoshop CS3\預設集\指令碼\
如果你有大量的圖要轉,只要在自行做一個"動作",再套用自動->批次處裡。

, , , , ,


Loading Facebook Comments ...

One Response

  1. acha 說道:

    想請問你擅長寫photoshop script嗎 ?
    因為我們公司有一個外包案想找人寫photoshop的外掛,
    主要需求是在圖層裡的選定範圍裡自動填色,
    若有興趣或有認識有人可以做的~~
    麻煩聯絡我~~~感謝感謝~~~~~~

acha 發表迴響 取消回覆

你的電子郵件位址並不會被公開。 必要欄位標記為 *