‘JSX’ タグのついている投稿

PhotoshopでレイヤーサイズをカンバスサイズにフィットするJSX

2009年2月18日 水曜日

PhotoshopのレイヤーをカンバスにフィットさせるJSXを書いてみました。
選択中レイヤー(複数選択可)のタテヨコ短い方を基準にフィットします。(タテヨコ長い方がカンバスからハミ出ますが、中央揃えされます)
サムネイル大量に作るのにちょう便利。
トリミングとかも早くなるよ!(別ドキュメントで必要な部分を切り出して、書き出したいサイズのドキュメントにコピペ→JSX発動)

下記コードを「レイヤーをカンバスにフィット.jsx」など適当な名前で保存してください。

  1. var canvasWidth = activeDocument.width;
  2. var canvasHeight = activeDocument.height;
  3. var layer = activeDocument.activeLayer;
  4. var layerX = layer.bounds[0];
  5. var layerY = layer.bounds[1];
  6. var layerWidth = layer.bounds[2] - layerX;
  7. var layerHeight = layer.bounds[3] - layerY;
  8. var rate;
  9.  
  10. if(layerHeight * (canvasWidth / layerWidth)>= canvasHeight){
  11.     // 拡大縮小倍率を白が出ないようにするため小数点以下第4位で切り上げ(この辺は調整してください)
  12.     rate = Math.ceil((canvasWidth / layerWidth) * 10000) / 100;
  13. } else {
  14.     // 拡大縮小倍率を白が出ないようにするため小数点以下第4位で切り上げ(この辺は調整してください)
  15.     rate = Math.ceil((canvasHeight / layerHeight) * 10000) / 100;
  16. }
  17.  
  18. // レイヤーをリサイズ
  19. layer.resize(rate, rate);
  20.  
  21. layerX = layer.bounds[0];
  22. layerY = layer.bounds[1];
  23. layerWidth = layer.bounds[2] - layerX;
  24. layerHeight = layer.bounds[3] - layerY;
  25.  
  26. // 中央寄せ
  27. layer.translate(((canvasWidth - layerWidth) / 2) - layerX, ((canvasHeight - layerHeight) / 2) - layerY);