編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴
== o ==
ねこまたや web出張所
INDEX

トップページ
お知らせ
twitter
お道具箱
技術資料と雑談
ライブラリ
雑貨や(ダウンロード)
最近の更新
ねこまたやについて

twitter

ねこまたやのついった

企画モノ

psAxe情報ページ
自主制作アニメ
ぽこあぽこ られんたんど


あやかしあやし
エフェクトネタ帳



りまぴん
AE エクスプレッション
レンダー乙女とか
簡易版XPSリンカ
おまけギャラリ

BBS

ねこまたやBBS
開発室BBS

Language



開発室みたいなものでしたが
spamアクセスがはげしいのでページは凍結中です。
書き換えは管理人のみが可能です。
Nekomataya/2024

ファイルまとめ - [[PS_Script]]


目次

PS_Script

開いているドキュメントを一つのドキュメントにまとめる

現在ワークスペースに開いているドキュメントを、新たなひとつのドキュメントにまとめます。

開いているドキュメントの最大サイズで各ドキュメントの名前がレイヤ名となる、新しいドキュメントを作成します。

このスクリプトは、現状使用中のスクリプトですが…あまり具合よくないので暇ができたら書き直す予定。

ソース

// Photoshopで原撮準備
/*
現在開いたファイルを対象に、すべてのファイルをひとつのファイルにまとめる。
その際、1レイヤづつ名前をつけてゆく。
名前ウィンドウは、マウスクリックで編集可能

	アクションシートの前駆
レイヤ	番号	サブレイヤ
[ BG ]
[BOOK]
[ LO ]			[演出]
[ A ]	[-number]	[作監]
[ B ]	[up][down]	[総作監]
[ C ]	
[ D ]	
[ E ]	
[ F ]	
[ G ]	
[PAN]
[SLIDE]
[T.U.]
[T.B.]
[SCALE]
[付けPAN]
[ゴンドラ]
[effect]
[特効]

ラストにレイヤを再配置してシートを書き出し(MAPつき)

AEでは、シートにしたがってレイヤごとに ON/OFF(IN/OUT or ON/blank)処理する。
 */

//for PreComp with Photoshop


//現在オープンされているすべてのドキュメントをソースとして控える。
	var sourceDocs=new Array();
	var maxHeight=0;	var maxWidth=0;	var maxResolution=0;

for (idx=0;idx<app.documents.length;idx++)
{
	sourceDocs[idx]=app.documents[idx];

//	ソースの最大サイズを取得 新規ドキュメントを作成する。
	if(maxWidth<sourceDocs[idx].width.toString().replace(/px/,"")*1)
	{
		maxWidth=sourceDocs[idx].width.toString().replace(/px/,"")*1;
	}
	if(maxHeight<sourceDocs[idx].height.toString().replace(/px/,"")*1)
	{
		maxHeight=sourceDocs[idx].height.toString().replace(/px/,"")*1;
	}
	if(maxResolution<sourceDocs[idx].resolution.toString().replace(/px/,"")*1)
	{
		maxResolution=sourceDocs[idx].resolution.toString().replace(/px/,"")*1;
	}
};
//	ソースドキュメントのカット番号を推定して名前として取得する。
	var previewValue="c000";

	myDocName=prompt("ドキュメントの名前を入力",previewValue);
	if(myDocName==null){myDocName=previewValue};

var destDoc=app.documents.add(maxWidth+" px",maxHeight+" px",maxResolution+" dpi",myDocName);
	var voidLayer=app.activeDocument.layers[0];//最初のレイヤを控えておく
//if(maxResolution>144)
//{
//	destDoc.resizeImage(this.width,this.height,144);
//};

for (idx=0;idx<sourceDocs.length;idx++)
{
//ソースドキュメントをアクティブに
	app.activeDocument=sourceDocs[idx];

	if(app.activeDocument.pixelAspectRatio!=1)
	{
		app.activeDocument.pixelAspectRatio=1;
	}
//	ドキュメントが2値だったらグレースケールに変換
	if(app.activeDocument.mode==DocumentMode.BITMAP)
	{
		app.activeDocument.changeMode(ChangeMode.GRAYSCALE);
	}

	if(false){
	app.activeDocument.artLayers[0].copy();//レイヤ1をコピー
	}else{
	app.activeDocument.selection.selectAll();//全選択
	app.activeDocument.selection.copy();//コピー
	}
//	if(app.activeDocument.saved){
		if(app.activeDocument.name.match(/^(.*)?..+?$/i))
		{
			myLayerName=RegExp.$1;//拡張子を払う
	/* これは正確には「最初のドットよりも前の文字列の取得」なので注意 */
		}
//	}else{
//		myLayerName="";
//	}
//確認
//		myLayerName=prompt("レイヤ名を確認",myLayerName);

	app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

	app.activeDocument=destDoc;//複写先をアクティブに
	app.activeDocument.selection.select([[0,0],[0,10],[10,10],[10,0]],SelectionType.REPLACE);//左上端をセレクト
	app.activeDocument.paste();//複写
	app.activeDocument.activeLayer.name=myLayerName;
//		レイヤに名前を設定(もとファイルのファイル名?)
};

//最初のレイヤまたは背景レイヤを捨てる
	voidLayer.remove();
if(false){
//	ドキュメントが144dpi以外だったら144dpiにリサンプル
	if(app.activeDocument.resolution.toString()!="144 dpi")
	{
		app.activeDocument.resizeImage(this.width,this.height,144);
	}
}