<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>色胚子部落 &#187; 指令碼</title>
	<atom:link href="http://blog.colorbase.tw/tag/%e6%8c%87%e4%bb%a4%e7%a2%bc/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.colorbase.tw</link>
	<description>訊息多變的時代裡，需要多學習多思考</description>
	<lastBuildDate>Mon, 15 Aug 2011 03:29:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Photoshop 利用指令碼自動為圖片加入版權文字浮水印</title>
		<link>http://blog.colorbase.tw/programming/235</link>
		<comments>http://blog.colorbase.tw/programming/235#comments</comments>
		<pubDate>Tue, 29 Jul 2008 11:27:06 +0000</pubDate>
		<dc:creator>阿育</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[指令碼]]></category>

		<guid isPermaLink="false">http://blog.colorbase.tw/?p=235</guid>
		<description><![CDATA[在上一篇天啊！我的Photoshop變聰明了 &#8211; 利用指令碼進階自動化入門中提到Photoshop指令碼的基本概念(沒什麼人感興趣&#8230;這果然是很冷門的功能XD)，這次再來一個進階一點的範例。
有很多人在發表文章的時候，都會替自己的圖片加上版權文字浮水印，雖然網路上可以找到很多這樣的軟體，不過我還是用這個功能作為範例。
Photoshop指令碼，不僅僅可以執行指令，甚至可以自訂使用者介面，透過自訂的介面可以讓指令碼的功能更加人性化、更有彈性。

範例使用方法：
1.將下面的指令碼存成加入文字浮水印.js，CS3版存成加入文字浮水印.jsx，放到「Photoshop安裝目錄\預設集\指令碼\」中。
2.重新開啟Photoshop，就可以在「檔案 &#62;&#62; 指令碼」中找到多了一個「加入文字浮水印」的指令。
3.下載文字浮水印樣式並加入Photoshop中，或自訂一個名為「WatermarkingStyle」的浮水印樣式，例如：斜角與浮雕效果、筆畫效果。
4.執行這個指令碼，就會跳出下圖這樣一個對話視窗：

5.完成後如下圖：

自動加上文字浮水印指令碼


//Photoshop指令碼加入文字浮水印 beta 1
#target photoshop

var dlg = new Window("dialog", "自動加上文字浮水印",[0,0,220,200]);

dlg.center();

dlg.txt1 = dlg.add("statictext",[5,5,215,25],"請輸入浮水印文字");

dlg.markText = dlg.add("edittext",[5,25,215,50],"http://blog.colorbase.tw.colorbase.tw");

dlg.ok = dlg.add("button",[5,55,105,80],"確定");
dlg.ok.onClick = function()
{
	Watermarking(dlg.markText.text);

	function Watermarking(varText)
	{
		if(app.documents.length > 0)
		{
			var doc = app.activeDocument;
		}
		else
		{
			alert("請開啟要加浮水印的圖檔");
			return;
		}

		oldRulerUnits = app.preferences.rulerUnits;
		oldTypeUnits = app.preferences.typeUnits;
		app.preferences.rulerUnits = Units.PIXELS;
		app.preferences.typeUnits = TypeUnits.PIXELS

		var layer = doc.artLayers.add();

		layer.kind = LayerKind.TEXT;

		var text = layer.textItem;

		var txtColor = new SolidColor();
		var txtRgb = txtColor.rgb;
		txtRgb.red = 255;
		txtRgb.green = 255;
		txtRgb.blue = ...]]></description>
			<content:encoded><![CDATA[<p>在上一篇<a href="http://blog.colorbase.tw/programming/165">天啊！我的Photoshop變聰明了 &#8211; 利用指令碼進階自動化入門</a>中提到Photoshop指令碼的基本概念(沒什麼人感興趣&#8230;這果然是很冷門的功能XD)，這次再來一個進階一點的範例。</p>
<p>有很多人在發表文章的時候，都會替自己的圖片加上版權文字浮水印，雖然網路上可以找到很多這樣的軟體，不過我還是用這個功能作為範例。</p>
<p>Photoshop指令碼，不僅僅可以執行指令，甚至可以自訂使用者介面，透過自訂的介面可以讓指令碼的功能更加人性化、更有彈性。</p>
<p><span id="more-235"></span></p>
<p><strong>範例使用方法：</strong></p>
<p>1.將下面的指令碼存成<strong>加入文字浮水印.js</strong>，CS3版存成<strong>加入文字浮水印.jsx</strong>，放到「Photoshop安裝目錄\預設集\指令碼\」中。</p>
<p>2.重新開啟Photoshop，就可以在「檔案 &gt;&gt; 指令碼」中找到多了一個「加入文字浮水印」的指令。</p>
<p>3.下載<a href="http://blog.colorbase.tw/download/Watermarking.asl">文字浮水印樣式</a>並加入Photoshop中，或自訂一個名為「WatermarkingStyle」的浮水印樣式，例如：斜角與浮雕效果、筆畫效果。</p>
<p>4.執行這個指令碼，就會跳出下圖這樣一個對話視窗：</p>
<p><a href="http://blog.colorbase.tw/wp-content/uploads/2008/07/013.gif"><img class="alignnone size-medium wp-image-236" title="自動加上文字浮水印對話視窗" src="http://blog.colorbase.tw/wp-content/uploads/2008/07/013.gif" alt="" width="226" height="232" /></a></p>
<p>5.完成後如下圖：<br />
<a href="http://blog.colorbase.tw/wp-content/uploads/2008/07/e59c96e78987e78988e6ac8ae69687e5ad97e6b5aee6b0b4e58db0.jpg"><img class="alignnone size-medium wp-image-237" title="圖片版權文字浮水印" src="http://blog.colorbase.tw/wp-content/uploads/2008/07/e59c96e78987e78988e6ac8ae69687e5ad97e6b5aee6b0b4e58db0.jpg" alt="" width="348" height="275" /></a></p>
<p>自動加上文字浮水印指令碼</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterEditableSmartContent">
<pre name="code" class="js:nogutter">
//Photoshop指令碼加入文字浮水印 beta 1
#target photoshop

var dlg = new Window("dialog", "自動加上文字浮水印",[0,0,220,200]);

dlg.center();

dlg.txt1 = dlg.add("statictext",[5,5,215,25],"請輸入浮水印文字");

dlg.markText = dlg.add("edittext",[5,25,215,50],"http://blog.colorbase.tw.colorbase.tw");

dlg.ok = dlg.add("button",[5,55,105,80],"確定");
dlg.ok.onClick = function()
{
	Watermarking(dlg.markText.text);

	function Watermarking(varText)
	{
		if(app.documents.length > 0)
		{
			var doc = app.activeDocument;
		}
		else
		{
			alert("請開啟要加浮水印的圖檔");
			return;
		}

		oldRulerUnits = app.preferences.rulerUnits;
		oldTypeUnits = app.preferences.typeUnits;
		app.preferences.rulerUnits = Units.PIXELS;
		app.preferences.typeUnits = TypeUnits.PIXELS

		var layer = doc.artLayers.add();

		layer.kind = LayerKind.TEXT;

		var text = layer.textItem;

		var txtColor = new SolidColor();
		var txtRgb = txtColor.rgb;
		txtRgb.red = 255;
		txtRgb.green = 255;
		txtRgb.blue = 255;
		text.contents = varText;
		text.font = "Vrinda";
		text.size = 24;
		text.tracking = 200;
		text.color= txtColor;
		text.kind = TextType.PARAGRAPHTEXT;
		text.position = Array( doc.width - text.width,
		doc.height - text.height - 5);
		layer.applyStyle("WatermarkingStyle");
		app.preferences.rulerUnits = oldRulerUnits;
		app.preferences.typeUnits = oldTypeUnits;
		alert("完成");
		}

		dlg.close();
};

dlg.cancel = dlg.add("button",[110,55,215,80],"取消");
dlg.cancel.onClick = function(){dlg.close()};

dlg.p1 = dlg.add("panel",[5,85,215,195],"關於作者");

var authorTxt = "作者：顏宏育 Roy Yan\n" +
"部落格：http://blog.colorbase.tw.colorbase.tw\n" +
"作品：http://free.colorbase.tw\n\n" +
"歡迎到我的網站逛逛 ^^";
dlg.p1.txt2 = dlg.p1.add("statictext",[5,15,200,95],authorTxt,
{multiline:true});

dlg.show();
</pre>
</div>
<div id="think"><span id="title">延伸思考：</span></p>
<ul>
<li>過於冷門的東西多說無意義，就讓它隨著時間洪流消失。</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.colorbase.tw/programming/235/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>天啊！我的Photoshop變聰明了 &#8211; 利用指令碼進階自動化入門</title>
		<link>http://blog.colorbase.tw/programming/165</link>
		<comments>http://blog.colorbase.tw/programming/165#comments</comments>
		<pubDate>Sun, 20 Jul 2008 08:37:12 +0000</pubDate>
		<dc:creator>阿育</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[vbscript]]></category>
		<category><![CDATA[指令碼]]></category>
		<category><![CDATA[軟體教學]]></category>

		<guid isPermaLink="false">http://blog.colorbase.tw/?p=165</guid>
		<description><![CDATA[Photoshop提供「動作(action)」來加快工作效率，但是動作實質上只是一種「巨集(Macro)」，遇到較為特殊的狀況就顯得力不從心了，但是不要緊！因為Photoshop還提供另一種更強大的功能「指令碼(Scripting)」，可以讓使用者有彈性的達成更複雜的自動化動作。 
 Photoshop Scripting支援多種程式語言操控Photoshop執行及判斷各式各樣的動作，印象中如果沒記錯的話是從7版開始支援的，目前CS3版支援的腳本語言(Script language)如下：


AppleScript (Mac系統適用) 
VBScript (Windows系統適用) 
JavaScript (Windows與Mac系統皆適用) 

另外除了可以利用腳本語言撰寫指令碼，Photoshop也提供以ActiveX的方式，讓使用編譯式語言的使用者也能夠輕易操縱Photoshop。
記得我第一次發現Photoshop Scripting這玩意時，真是驚為天人，直呼「這真是太神奇了」，但是一直到現在好像鮮少人提及、談論這東西，它到目前始終算是蠻冷門的東西，或許是因為美術設計人員沒心思研究這個看似複雜難用的功能吧。
如何執行指令碼
1.從Photoshop中開啟：
在功能表的「檔案 &#62;&#62; 指令碼」中內建許多實用的功能，若使用者自行撰寫指令碼，可以使用「瀏覽」開啟自訂的指令碼。

2.將指令變成Photoshop功能表的一部分：
將指令碼檔案放到「Photoshop安裝目錄\預設集\指令碼\」中，再次開啟Photoshop就會顯示在「檔案 &#62;&#62; 指令碼」的子選單中了。
註：CS3版本必須為*.jsx的JavaScript檔案
3.直接執行：
可以直接點兩下自訂的指令碼檔案，讓系統自動以預設的程式開啟指令碼檔案，如果你的指令碼是*.vbs的VBScript檔案或*.js的JavaScript檔案，通常系統預設開啟的程式為「Microsoft (r) Windows Based Script Host」，但是如果安裝了某些編輯器，可能會被更改為由該編輯器開啟，此時可以將vbs檔案設定成「系統目錄\system32\wscript.exe」執行。
在CS3版本中可以將JavaScript存成，*.jsx，則預設會由Photoshop所提供的「ExtendScript Toolkit 2 and Debugger」執行。
Photoshop Scripting基礎
對於想學習Photoshop Scripting(以下簡稱PSS)卻尚未學習過任何程式語言的人，建議學習JavaScript，因為JavaScript有以下優點：

JavaScript通用Windows與Mac系統。(針對Photoshop而言) 
JS的使用人數相當龐大，網路資源相當豐富。 
腳本式語言，不僅撰寫方便(如果沒有工具的話記事本就可以編輯)，學習的痛苦度也會比較低。 

由於我沒接觸過AppleScript，所以只簡單談談VBScript(以下簡稱VBS)及JavaScript(以下簡稱JS)的小小心得，以及兩者之間的差異，有興趣的人可以參閱「Photoshop安裝目錄\指令碼手冊\」，裡面包含詳細的說明文件及範例檔。
備註：編譯式語言如果要使用ActiveX控制Photoshop，建議參閱Photoshop VBScript參考文件。
以下程式碼JS存成*.js或CS3版的*.jsx，VBS存成*.vbs
建立及使用PSS物件
Application物件，代表整個Phoshop應用程式
JS，使用#target photoshop宣告，之後就能直接操作PSS所提供的各種物件

#target photoshop
//使用Application物件將Photoshop推到最上層
app.bringToFront();

VBS，利用CreateObject建立Photoshop所提供的ActiveX物件

Dim app
Set app = CreateObject( &#34;Photoshop.Application&#34; )
'使用Application物件將Photoshop推到最上層
app.bringToFront

Application.Documents物件
Doucments是Document的集合，簡單一點說，Documents就是指目前所有開啟的圖檔，例如：可以利用Doucments來判斷目前Photoshop開啟幾個圖檔
  JS，使用length屬性得知目前開啟圖檔數量

#target photoshop
alert(&#34;目前開啟圖檔數量：&#34; + app.documents.length);

VBS，與JS不同，必須使用count屬性得知目前開啟圖檔數量

Dim app
Set app = CreateObject( &#34;Photoshop.Application&#34; )
MsgBox(&#34;目前開啟的圖檔數量：&#34; &#38; app.documents.count)

Document物件 
既然Documents物件是指目前所有開啟的圖檔，那麼Document(沒有複數s)，就是指目前所開啟的某個圖檔，例如：可以利用activeDocument，取得目前正在使用的圖檔尺寸。 
JS

#target photoshop
//判斷是否有開啟圖檔
if(app.documents.length ...]]></description>
			<content:encoded><![CDATA[<p>Photoshop提供「動作(action)」來加快工作效率，但是動作實質上只是一種「<a href="http://zh.wikipedia.org/w/index.php?title=%E5%B7%A8%E9%9B%86&amp;variant=zh-tw" target="_blank">巨集(Macro)</a>」，遇到較為特殊的狀況就顯得力不從心了，但是不要緊！因為Photoshop還提供另一種更強大的功能「<a href="http://zh.wikipedia.org/w/index.php?title=%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80&amp;variant=zh-tw" target="_blank">指令碼(Scripting)</a>」，可以讓使用者有彈性的達成更複雜的自動化動作。 </p>
<p> <span id="more-165"></span>Photoshop Scripting支援多種程式語言操控Photoshop執行及判斷各式各樣的動作，印象中如果沒記錯的話是從7版開始支援的，目前CS3版支援的<a href="http://zh.wikipedia.org/w/index.php?title=%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80&amp;variant=zh-tw" target="_blank">腳本語言(Script language)</a>如下：
</p>
<ul>
<li>AppleScript (Mac系統適用) </li>
<li>VBScript (Windows系統適用) </li>
<li>JavaScript (Windows與Mac系統皆適用) </li>
</ul>
<p>另外除了可以利用腳本語言撰寫指令碼，Photoshop也提供以<a href="http://zh.wikipedia.org/w/index.php?title=ActiveX&amp;variant=zh-tw" target="_blank">ActiveX</a>的方式，讓使用編譯式語言的使用者也能夠輕易操縱Photoshop。</p>
<p>記得我第一次發現Photoshop Scripting這玩意時，真是驚為天人，直呼「這真是太神奇了」，但是一直到現在好像鮮少人提及、談論這東西，它到目前始終算是蠻冷門的東西，或許是因為美術設計人員沒心思研究這個看似複雜難用的功能吧。</p>
<p><strong><span style="color: #008080">如何執行指令碼</span></strong></p>
<p><strong>1.從Photoshop中開啟：</strong></p>
<p>在功能表的「檔案 &gt;&gt; 指令碼」中內建許多實用的功能，若使用者自行撰寫指令碼，可以使用「瀏覽」開啟自訂的指令碼。</p>
<p><a href="http://blog.colorbase.tw/wp-content/uploads/2008/07/001.gif"><img class="alignnone size-medium wp-image-166" title="指令碼功能表" alt="" src="http://blog.colorbase.tw/wp-content/uploads/2008/07/001-400x196.gif" width="400" height="196" /></a></p>
<p><strong>2.將指令變成Photoshop功能表的一部分：</strong></p>
<p>將指令碼檔案放到「Photoshop安裝目錄\預設集\指令碼\」中，再次開啟Photoshop就會顯示在「檔案 &gt;&gt; 指令碼」的子選單中了。</p>
<p>註：CS3版本必須為*.jsx的JavaScript檔案</p>
<p><strong>3.直接執行：</strong></p>
<p>可以直接點兩下自訂的指令碼檔案，讓系統自動以預設的程式開啟指令碼檔案，如果你的指令碼是*.vbs的VBScript檔案或*.js的JavaScript檔案，通常系統預設開啟的程式為「Microsoft (r) Windows Based Script Host」，但是如果安裝了某些編輯器，可能會被更改為由該編輯器開啟，此時可以將vbs檔案設定成「系統目錄\system32\wscript.exe」執行。</p>
<p>在CS3版本中可以將JavaScript存成，*.jsx，則預設會由Photoshop所提供的「ExtendScript Toolkit 2 and Debugger」執行。</p>
<p><strong><span style="color: #008080">Photoshop Scripting基礎</span></strong></p>
<p>對於想學習Photoshop Scripting(以下簡稱PSS)卻尚未學習過任何程式語言的人，建議學習JavaScript，因為JavaScript有以下優點：</p>
<ol>
<li>JavaScript通用Windows與Mac系統。(針對Photoshop而言) </li>
<li>JS的使用人數相當龐大，網路資源相當豐富。 </li>
<li>腳本式語言，不僅撰寫方便(如果沒有工具的話記事本就可以編輯)，學習的痛苦度也會比較低。 </li>
</ol>
<p>由於我沒接觸過AppleScript，所以只簡單談談VBScript(以下簡稱VBS)及JavaScript(以下簡稱JS)的小小心得，以及兩者之間的差異，有興趣的人可以參閱「Photoshop安裝目錄\指令碼手冊\」，裡面包含詳細的說明文件及範例檔。</p>
<p>備註：編譯式語言如果要使用ActiveX控制Photoshop，建議參閱Photoshop VBScript參考文件。</p>
<p>以下程式碼JS存成*.js或CS3版的*.jsx，VBS存成*.vbs</p>
<p><strong>建立及使用PSS物件</strong></p>
<p>Application物件，代表整個Phoshop應用程式</p>
<p>JS，使用#target photoshop宣告，之後就能直接操作PSS所提供的各種物件</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="js:nogutter" name="code">#target photoshop
//使用Application物件將Photoshop推到最上層
app.bringToFront();</pre>
</div>
<p>VBS，利用CreateObject建立Photoshop所提供的ActiveX物件</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="vb:nogutter" name="code">Dim app
Set app = CreateObject( &quot;Photoshop.Application&quot; )
'使用Application物件將Photoshop推到最上層
app.bringToFront</pre>
</div>
<p><strong>Application.Documents物件</strong></p>
<p>Doucments是Document的集合，簡單一點說，Documents就是指目前所有開啟的圖檔，例如：可以利用Doucments來判斷目前Photoshop開啟幾個圖檔<br />
  <br />JS，使用length屬性得知目前開啟圖檔數量</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="js:nogutter" name="code">#target photoshop
alert(&quot;目前開啟圖檔數量：&quot; + app.documents.length);</pre>
</div>
<p>VBS，與JS不同，必須使用count屬性得知目前開啟圖檔數量</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="vb:nogutter" name="code">Dim app
Set app = CreateObject( &quot;Photoshop.Application&quot; )
MsgBox(&quot;目前開啟的圖檔數量：&quot; &amp; app.documents.count)</pre>
</div>
<p><strong>Document物件</strong> </p>
<p>既然Documents物件是指目前所有開啟的圖檔，那麼Document(沒有複數s)，就是指目前所開啟的某個圖檔，例如：可以利用activeDocument，取得目前正在使用的圖檔尺寸。 </p>
<p>JS</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="js:nogutter" name="code">#target photoshop
//判斷是否有開啟圖檔
if(app.documents.length &gt; 0)
{
	//有開啟圖檔，設定doc為目前圖檔的參照(reference)
	var doc = app.activeDocument;
	//顯示目前圖檔尺寸
	alert(&quot;目前圖檔尺寸為\n寬：&quot; + doc.width + &quot;\n高：&quot; + doc.height);

	//顯示第一個圖檔文件的尺寸
	doc = app.documents[0];//圖檔依照順序從0開始
	alert(&quot;第一個圖檔尺寸為\n寬：&quot; + doc.width + &quot;\n高：&quot; + doc.height);
}</pre>
</div>
<p>VBS</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="vb:nogutter" name="code">Dim app
Dim doc
Set app = CreateObject( &quot;Photoshop.Application&quot; )
'判斷是否有開啟圖檔
If app.documents.count &gt; 0 Then
	Set doc = app.activeDocument
	MsgBox(&quot;目前圖檔尺寸為&quot; &amp; vbcr &amp; _
	&quot;寬：&quot; &amp; doc.width&amp; vbcr &amp; &quot;高：&quot; &amp; doc.height)

	Set doc = app.Documents.item(1)'//圖檔依照順序從1開始
	MsgBox(&quot;第一個圖檔尺寸為&quot; &amp; vbcr &amp; _
	&quot;寬：&quot; &amp; doc.width&amp; vbcr &amp; &quot;高：&quot; &amp; doc.height)
End If</pre>
</div>
<p><strong>SolidColor物件</strong> </p>
<p>SolidColor也就是顏色，在PSS中所有跟顏色扯上關係的都要使用SolidColor，例如：設定Photoshop的前景色 </p>
<p>JS，用new建立SolidColor物件</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="js:nogutter" name="code">#target photoshop
var myColor = new SolidColor();
//設定SolidColor的RGB屬性，將顏色設成青色
myColor.rgb.red = 0;
myColor.rgb.green = 255;
myColor.rgb.blue = 255;
//將Photoshop的前景色設置為青色
app.foregroundColor = myColor;</pre>
</div>
<p>VBS，一樣使用CreateObject建立SolidColor物件</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="vb:nogutter" name="code">Dim app
Set app = CreateObject( &quot;Photoshop.Application&quot; )
'設定SolidColor的RGB屬性，將顏色設成青色
Set myColor = CreateObject( &quot;Photoshop.SolidColor&quot; )
mycolor.rgb.red = 0
mycolor.rgb.green = 255
mycolor.rgb.blue = 255
'將Photoshop的前景色設置為青色
app.foregroundColor = myColor</pre>
</div>
<p>又或者，可使用更簡單的方式來設定前景色<br />
  <br />JS</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="js:nogutter" name="code">#target photoshop
//直接設定foregroundColor，將前景色設成青色
app.foregroundColor.rgb.red = 0;
app.foregroundColor.rgb.green = 255;
app.foregroundColor.rgb.blue = 255;</pre>
</div>
<p>VBS</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e7260e77-5e65-4ebc-af8d-01c0054aa9ca" class="wlWriterSmartContent">
<pre class="vb:nogutter" name="code">Dim app
Set app = CreateObject( &quot;Photoshop.Application&quot; )
'直接設定foregroundColor，將前景色設成青色
app.foregroundColor.rgb.red = 0
app.foregroundColor.rgb.green = 255
app.foregroundColor.rgb.blue = 255</pre>
</div>
<p><strong><span style="color: #008080">簡單的縮圖範例</span></strong> </p>
<p>來一個簡單的範例， 要做縮圖的時候，如果單純使用動作(Action)，並無法自動根據圖檔是寬的還是高的進行不同的縮圖處理，這時指令碼就派上用場啦 </p>
<p>JS</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:15db0da6-66ad-4f11-ad41-17e8e1fff713" class="wlWriterEditableSmartContent">
<pre name="code" class="js:nogutter">#target photoshop

//-----設定-----------------------
var limitWidth = 200;//最大寬度
var limitHeight = 160;//最大高度
var ImgResolution = 72;//解析度
//--------------------------------

//把Photoshop推到最上層
app.bringToFront();

//設定使用的單位為「像素(Pixel)」
app.preferences.rulerUnits = Units.PIXELS;

//呼叫要處理縮圖的函數
ReSizeImg();

function ReSizeImg()
{
	//判斷是否有開啟圖檔
	if(app.documents.length &gt; 0){
		//有開啟圖檔，設定doc為目前圖檔的參照(reference)
		var doc = app.activeDocument;
	}else{
		//沒有開啟圖檔
		alert("請開啟要調整大小的圖檔");
		return;
	}

	//如果原圖小於或等於縮圖尺寸，則跳出不處理
	if(doc.width &lt;= limitWidth &amp;&amp; doc.height &lt;= limitHeight)return;

	//開始判斷縮圖大小
	var rsWidth = doc.width;
	var rsHeight = doc.height;
	var Scale = 1.0;

	if(doc.width &gt; limitWidth){
		Scale = limitWidth / (doc.width + 0.0);
		rsWidth = doc.width * Scale;
		rsHeight = doc.height * Scale;
	}

	if (rsHeight &gt; limitHeight){
		Scale = limitHeight / (doc.height + 0.0);
		rsWidth = doc.width * Scale;
		rsHeight = doc.height * Scale;
	}

	//執行更改圖像大小指令
	doc.resizeImage(rsWidth, rsHeight, ImgResolution, ResampleMethod.BILINEAR);
}
</pre>
</div>
<p>不厭其煩的，也來個VBS版，請注意與JS不同的地方</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ee6d1b30-fced-4a50-9114-b72130c10025" class="wlWriterEditableSmartContent">
<pre name="code" class="vb:nogutter">Dim app
Dim doc
Dim limitWidth
Dim limitHeight
Dim ImgResolution
Dim rsWidth
Dim rsHeight
Dim Scale
Set app = CreateObject( "Photoshop.Application" )

'-----設定-----------------------
limitWidth = 200 '最大寬度
limitHeight = 160 '最大高度
ImgResolution = 72 '解析度
'--------------------------------

'把Photoshop推到最上層
app.bringToFront()

'設定使用的單位為「像素(Pixel)」，跟JS不太一樣哦
app.preferences.rulerUnits = 1 ' psPixels

'呼叫要處理縮圖的函數
ReSizeImg()

Function ReSizeImg()

	'判斷是否有開啟圖檔
	If app.documents.count &gt; 0 Then
		'有開啟圖檔，設定doc為目前圖檔的參照(reference)
		Set doc = app.activeDocument
	Else
		'沒有開啟圖檔
		MsgBox("請開啟要調整大小的圖檔")
		Exit Function
	End If

	'如果原圖小於或等於縮圖尺寸，則跳出不處理
	If doc.width &lt;= limitWidth And doc.height &lt;= limitHeight Then Exit Function

	'開始判斷縮圖大小
	rsWidth = doc.width
	rsHeight = doc.height
	Scale = 1.0

	if doc.width &gt; limitWidth Then
		Scale = limitWidth / (doc.width + 0.0)
		rsWidth = doc.width * Scale
		rsHeight = doc.height * Scale
	End If

	if rsHeight &gt; limitHeight Then
		Scale = limitHeight / (doc.height + 0.0)
		rsWidth = doc.width * Scale
		rsHeight = doc.height * Scale
	End If

	'執行更改圖像大小指令，跟JS不太一樣哦
	doc.resizeImage rsWidth, rsHeight, ImgResolution, 3
End Function </pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.colorbase.tw/programming/165/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

