忍者ブログ
InDesignとPhotoshopの、JavaScriptの覚え書き中心に書いていこうと思っています。参考になれば幸いです。 最近アップルスクリプトをかじり始めました。 他の趣味についても、たまに書こうかな~ と、思っています。
[1] [2]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PhotoShopでスクリプトからリサイズする場合普通は

app.activeDocument.resizeImage(width,height,resolution,resampleMethod);

で、リサイズすると思いますが、レイヤー効果がかかっている画像をリサイズすると…
効果がリサイズ前の幅のままリサイズされてしまいます。結果、効果の部分の線やグラデーションが太くなったり細くなったり…私はこれで、数年前に事故りかけた。
 
メニューの イメージ→画像解像度 でリサイズする場合の「スタイルを拡大・縮小」のチェックが入っていない状態(上図)
んで、スクリプトで効果も一緒にリサイズするには、ScriptListenerを利用してメニューからリサイズを実行した内容をスクリプトに書き出して修正して利用するしかないみたい。(グループ会社の人から教えてもらった)
現在、実際に使っているリサイズ

  1. // =======================================================
  2. var idImgS = charIDToTypeID( "ImgS" );
  3.     var desc5 = new ActionDescriptor();
  4.    
  5.     //横ピクセル数
  6.     var idWdth = charIDToTypeID( "Wdth" ); // 縦を指定する場合は "Hght"
  7.     var idPxl = charIDToTypeID( "#Pxl" ); // %は "#Prc"
  8.     desc5.putUnitDouble( idWdth, idPxl, リサイズ後のピクセル数 );
  9.    
  10.     //解像度
  11.     var idRslt = charIDToTypeID( "Rslt" );
  12.     var idRsl = charIDToTypeID( "#Rsl" );
  13.     desc5.putUnitDouble( idRslt, idRsl, 解像度 );
  14.    
  15.     //スタイルの拡大・縮小
  16.     var idscaleStyles = stringIDToTypeID( "scaleStyles" );
  17.     desc5.putBoolean( idscaleStyles, true );
  18.    
  19.     //不明
  20.     var idCnsP = charIDToTypeID( "CnsP" );
  21.     desc5.putBoolean( idCnsP, true );
  22.     var idIntr = charIDToTypeID( "Intr" );
  23.     var idIntp = charIDToTypeID( "Intp" );
  24.    
  25.     //再サンプル方法
  26.     //"ニアレストネイバー法" = "Nrst" "バイリニア法" = "Blnr"
  27.     //"バイキュービック法" = "Bcbc" "バイキュービック法(SMOOTH)" = "bicubicSmoother"
  28.     //"バイキュービック法(SHARP)" = "bicubicSharper"
  29.     var idBcbc = charIDToTypeID( "Bcbc" );
  30.     desc5.putEnumerated( idIntr, idIntp, idBcbc );
  31.    
  32. executeAction( idImgS, desc5, DialogModes.NO );

これを関数化して使用してます。まあ、こんな事しなくてもレイヤーを統合してからリサイズすれば済むことなんですけど…

拍手[1回]

PR
ブログを開設したはいいが…とりあえず、誰かに見てもらうよりは自分用の覚え書き程度に不定期で更新しようかなー。

第一弾として、Adobe の Java Script のフォルダ識別方法について

サブフォルダの中まで処理させるスクリプトを組もうとしていたとき、Folder.getFiles() で取得したオブジェクトが、フォルダかファイルかを識別する方法がないか、いろいろなサイトを見たが、拡張子で判断する等いまいちなものばかり(拡張子の無いファイルが入稿することも度々あるし…)

そんな方法しかないか~と諦めかけていた時、間違えてファイルオブジェクトに対して length を参照したら何か値が得られている……容量でした。へ~ じゃあフォルダはその中の容量計算してくれるの?と、試したら…undefined  残念…でもこれでフォルダを判断できるじゃん♪ ってことで

ファイルオブジェクト.length の戻り値
  
ファイルの場合はその容量(Byte)
  
フォルダの場合は undefined
  エイリアスの場合は -1

よしフォルダの識別は出来た。サブフォルダを読み込む再起ルーチンはどうすればいいんだ?

拍手[0回]

ブログ内検索
プロフィール
HN:
Light Head
年齢:
52
性別:
男性
誕生日:
1972/05/23
職業:
DTPオペレーター
趣味:
バイク、機械いじり、プログラミング
P R
Powered by ニンジャブログ  Designed by ゆきぱんだ
Copyright (c) ライトヘッドのスクリプトノート All Rights Reserved
忍者ブログ / [PR]