トーンの2値化@デジタル原稿
今年の原稿はアクションを使ってグレーで塗りつぶした箇所を
2値化してたんだけど、
・一端新規ファイルにグレーレイヤーをコピー複製
・アクションでモノクロ2階調に変更(トーン化)
・グレスケに戻す
・もとのファイルにコピーレイヤーを複製して乗算にする
・トーンの種類だけ繰り返したあとまとめてディザで2値化
って段取りだったので、
ファイル間のコピーとかはアクションで対応できない部分があるので、
これもJavaScriptで書いてみました。
(追記:コピーを複製に訂正します。
一時ファイル行きのレイヤー複製はアクションでできるんだけど、
帰りのレイヤー複製は記録した時のファイルに戻そうとする
(例:100.psdで記録して101.psdで再生する)と「そのファイルいないよ」と
Photoshopに文句いわれるんだよね。
管理人の日本語が雑なせいで説明が分かりにくくなってすみません)
以下80線のアミ
■■■■■■■ここからスクリプト■■■■■■■
//原稿ファイルとサイズ
var genko = activeDocument;
//現在レイヤー原稿サイズを取得
var layerSetRef = activeDocument.activeLayer ;
var haba=activeDocument.width ;
var takasa=activeDocument.height ;
var genkodpi = activeDocument.resolution;
//一時用新規ファイル作成
//グレースケールに変更
var tmpfile = app.documents.add(haba, takasa, genkodpi, "tmp");
activeDocument.changeMode(ChangeMode.GRAYSCALE) ;
//原稿の対象レイヤーを一時ファイルにコピー複製
app.activeDocument = genko ;
layerSetRef.duplicate(tmpfile);
//一時ファイルのレイヤーを結合
app.activeDocument = tmpfile ;
tmpfile.mergeVisibleLayers();
//2値化の形状を指定
var opt = new BitmapConversionOptions()
//2値化オプション
//ハーフトーン指定している。(ディザ=DIFFUSIONDITHER)
opt.method = BitmapConversionType.HALFTONESCREEN ;
//角度
opt.angle = 45 ;
//線数
opt.frequency = 80 ;
//2値解像度
opt.resolution = genkodpi ;
//パターンの形状
//形状=円
//(線はLINE)
opt.shape = BitmapHalfToneType.ROUND ;
//2値化実行
tmpfile.changeMode(ChangeMode.BITMAP,opt) ;
//グレスケに戻す
tmpfile.changeMode(ChangeMode.GRAYSCALE) ;
//レイヤーを乗算にする
tmpfile.opacity = 100 ;
tmplayer = activeDocument.activeLayer ;
tmplayer.blendMode = BlendMode.MULTIPLY ;
//2値化レイヤーを元のファイルに複製
activeDocument.activeLayer.duplicate(layerSetRef,ElementPlacement.PLACEBEFORE);
//元のファイルをアクティブ
activeDocument = genko;
//元のレイヤーセットを非表示
layerSetRef.visible = false;
app.activeDocument =tmpfile;
//新規ファイルを破棄
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
■■■■■■■ここまでスクリプト■■■■■■■
(2011.01.08 duplicateの部分を修正。
複製先のレイヤーセットの前とか指定すれば、
複製先の位置も一発で決められるのね)
(2011.01.09 2値化のときの解像度の指定を
元の原稿の解像度を流用。
どうせグレスケにして元のファイルに戻すんだから、
一時ファイルと元原稿で変える必要ないよね)
線数やハーフトーンの形状の指定を書き換えれば
いろいろ使い分けられます。
白抜きトーンだともう一工夫いるけど。
トーン化したいレイヤーセットを選択して
スクリプトを実行すればOKです。
A5、B5は問わずに使えるはず。
解像度は1200にしてるけど、
これも書き換えればOK。
余裕が会ったら後日他のもアップします。