<?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>phreekz &#187; jsx</title>
	<atom:link href="http://www.phreekz.de/wordpress/tag/jsx/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phreekz.de/wordpress</link>
	<description>thinktank mindmachine</description>
	<lastBuildDate>Thu, 26 Jan 2012 21:24:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Photoshop Scripting II &#8211; automatisches Keying</title>
		<link>http://www.phreekz.de/wordpress/2009/07/photoshop-scripting-ii-getcolor/</link>
		<comments>http://www.phreekz.de/wordpress/2009/07/photoshop-scripting-ii-getcolor/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 23:11:29 +0000</pubDate>
		<dc:creator>chmee</dc:creator>
				<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[Video & Audio]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[getcolor]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[keying]]></category>
		<category><![CDATA[layermask]]></category>
		<category><![CDATA[mask]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.phreekz.de/wordpress/?p=280</guid>
		<description><![CDATA[<<p>Diese Frage wird recht oft gestellt : Das automatische Freistellen mehrerer Bilder/Objekte.  Also, hier das zugehörige Script, welches einfach nur den Farbwert an Pixelstelle 10/10 ausliest und in einer Javascript-Alert-Box anzeigt.</p>
<p><span style="color: #3366ff;"><strong>getColor.jsx</strong></span></p>
<p><pre language="javascript">#target photoshop
var docAktuell = app.activeDocument;</code>

var pixelLoc = [UnitValue("10 pixels") , UnitValue("10 pixels")];
var colorSamplerRef = docAktuell.colorSamplers.add(pixelLoc);
var currentColor = colorSamplerRef.color;

var redVal = Math.round(currentColor.rgb.red);
var greenVal = Math.round(currentColor.rgb.green);
var blueVal = Math.round(currentColor.rgb.blue);

alert("Pixel [10, 10] = (" + redVal + ", " + greenVal + ", " + blueVal + ")");

</pre></p>
<p>Scripts werden grundsätzlich in <span style="color: #339966;">./Photoshop/Presets/Scripts/</span> abgelegt und sind dann in Photoshop unter Script erreichbar. Übrigens, es gibt ein tolles Forum dafür :<a href="http://www.ps-scripts.com/bb/index.php"> http://www.ps-scripts.com/bb/index.php</a> &#8211; Leider ist da nicht soviel los, Scripting ist halt nicht Jedermanns Sache.</p>
<p>Hier also eine Minimalversion eines Photoshopscripts, dass in einer Datei 4 Selections in den Ecken nimmt, per Similar eine Keyingauswahl erstellt und diese in einer Maske speichert.</p>
<p><span style="color: #3366ff;"><strong>AutoKeyer.jsx</strong></span></p>
<p><pre language="javascript">#target photoshop
var docAktuell = app.activeDocument;
var maxX = docAktuell.width;
var maxY = docAktuell.height;</code>

//change backgroundlayer to worklayer
if(docAktuell.layers[0].isBackgroundLayer==true){
docAktuell.layers[0].isBackgroundLayer=false;
}

// makeLayerMask function - done by Paul Riggott
// http://forums.adobe.com/thread/290125
function makeLayerMask(maskType) {
if( maskType == undefined) maskType = 'RvlS' ; //from selection
var desc140 = new ActionDescriptor();
desc140.putClass( charIDToTypeID('Nw  '), charIDToTypeID('Chnl') );
var ref51 = new ActionReference();
ref51.putEnumerated( charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk ') );
desc140.putReference( charIDToTypeID('At  '), ref51 );
desc140.putEnumerated( charIDToTypeID('Usng'), charIDToTypeID('UsrM'), charIDToTypeID(maskType) );
executeAction( charIDToTypeID('Mk  '), desc140, DialogModes.NO );
}

// change Rulerunits to px
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

// 4 Corner rectangled Selections
docAktuell.selection.select(new Array (new Array(10,10),new Array(20,10), new Array(20,20), new Array(10,20)),SelectionType.REPLACE, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,10),new Array(maxX-20,10), new Array(maxX-20,20), new Array(maxX-10,20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,maxY-10),new Array(maxX-20,maxY-10), new Array(maxX-20,maxY-20), new Array(maxX-10,maxY-20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(10,maxY-10),new Array(20,maxY-10), new Array(20,maxY-20), new Array(10,maxY-20)),SelectionType.EXTEND, 1, false);

// Grab all pix similar to the selection
docAktuell.selection.similar(60,10);

// change the selection a bit
var Selected = app.activeDocument.selection;
Selected.expand( 0.2 );
//Selected.contract( 5 );
Selected.feather( 0.2 );

//make a mask from it
makeLayerMask('HdSl');

//done ! thx by phreekz.chmee
</pre><br />
Wieder mal die wichtige Info, dass keine Fehler abgefangen werden. Ich habe das Script mal mit <a href="http://cuvideoedit.com/resources/Sadie%20and%20green%20sceen.png">diesem Bild</a> ausprobiert, mit <a href="http://images.digitalmedianet.com/2005/Week_14/v0vw2fh3/story/raw1_250.jpg">Diesem</a> und auch mit diesem <a href="http://www.moderntex.de/shop_cfg/Fotostudio/gruen3x3.jpg">Hier</a> . Sieht erstmal gut aus. Im Script sind die Variablen recht gut einsehbar, zB im Similar Bereich die Werte für Toleranz (60) und Antialiasing (10), danach auch noch Variablen, um die Selektion zu verbessern, Expand und Feather.</p>
<p>Wenn man am Scripting Gefallen findet, sollte man mit diesem  <a href="http://photoshoptutorials.ws/photoshop-tutorials/technical/manipulate-an-image-with-scripting.html">Tutorial</a> weitermachen.</p>
<p>mfg chmee</p>
 <p><a href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=280&amp;md5=7cde9eb4fac49347a5674e9afda33618" title="Flattr" target="_blank"><img src="http://www.phreekz.de/wordpress/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></description>
			<content:encoded><![CDATA[<p>Diese Frage wird recht oft gestellt : Das automatische Freistellen mehrerer Bilder/Objekte.  Also, hier das zugehörige Script, welches einfach nur den Farbwert an Pixelstelle 10/10 ausliest und in einer Javascript-Alert-Box anzeigt.</p>
<p><span style="color: #3366ff;"><strong>getColor.jsx</strong></span></p>
<p><pre language="javascript">#target photoshop
var docAktuell = app.activeDocument;</code>

var pixelLoc = [UnitValue("10 pixels") , UnitValue("10 pixels")];
var colorSamplerRef = docAktuell.colorSamplers.add(pixelLoc);
var currentColor = colorSamplerRef.color;

var redVal = Math.round(currentColor.rgb.red);
var greenVal = Math.round(currentColor.rgb.green);
var blueVal = Math.round(currentColor.rgb.blue);

alert("Pixel [10, 10] = (" + redVal + ", " + greenVal + ", " + blueVal + ")");

</pre></p>
<p>Scripts werden grundsätzlich in <span style="color: #339966;">./Photoshop/Presets/Scripts/</span> abgelegt und sind dann in Photoshop unter Script erreichbar. Übrigens, es gibt ein tolles Forum dafür :<a href="http://www.ps-scripts.com/bb/index.php"> http://www.ps-scripts.com/bb/index.php</a> &#8211; Leider ist da nicht soviel los, Scripting ist halt nicht Jedermanns Sache.</p>
<p>Hier also eine Minimalversion eines Photoshopscripts, dass in einer Datei 4 Selections in den Ecken nimmt, per Similar eine Keyingauswahl erstellt und diese in einer Maske speichert.</p>
<p><span style="color: #3366ff;"><strong>AutoKeyer.jsx</strong></span></p>
<p><pre language="javascript">#target photoshop
var docAktuell = app.activeDocument;
var maxX = docAktuell.width;
var maxY = docAktuell.height;</code>

//change backgroundlayer to worklayer
if(docAktuell.layers[0].isBackgroundLayer==true){
docAktuell.layers[0].isBackgroundLayer=false;
}

// makeLayerMask function - done by Paul Riggott
// http://forums.adobe.com/thread/290125
function makeLayerMask(maskType) {
if( maskType == undefined) maskType = 'RvlS' ; //from selection
var desc140 = new ActionDescriptor();
desc140.putClass( charIDToTypeID('Nw  '), charIDToTypeID('Chnl') );
var ref51 = new ActionReference();
ref51.putEnumerated( charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk ') );
desc140.putReference( charIDToTypeID('At  '), ref51 );
desc140.putEnumerated( charIDToTypeID('Usng'), charIDToTypeID('UsrM'), charIDToTypeID(maskType) );
executeAction( charIDToTypeID('Mk  '), desc140, DialogModes.NO );
}

// change Rulerunits to px
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

// 4 Corner rectangled Selections
docAktuell.selection.select(new Array (new Array(10,10),new Array(20,10), new Array(20,20), new Array(10,20)),SelectionType.REPLACE, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,10),new Array(maxX-20,10), new Array(maxX-20,20), new Array(maxX-10,20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,maxY-10),new Array(maxX-20,maxY-10), new Array(maxX-20,maxY-20), new Array(maxX-10,maxY-20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(10,maxY-10),new Array(20,maxY-10), new Array(20,maxY-20), new Array(10,maxY-20)),SelectionType.EXTEND, 1, false);

// Grab all pix similar to the selection
docAktuell.selection.similar(60,10);

// change the selection a bit
var Selected = app.activeDocument.selection;
Selected.expand( 0.2 );
//Selected.contract( 5 );
Selected.feather( 0.2 );

//make a mask from it
makeLayerMask('HdSl');

//done ! thx by phreekz.chmee
</pre><br />
Wieder mal die wichtige Info, dass keine Fehler abgefangen werden. Ich habe das Script mal mit <a href="http://cuvideoedit.com/resources/Sadie%20and%20green%20sceen.png">diesem Bild</a> ausprobiert, mit <a href="http://images.digitalmedianet.com/2005/Week_14/v0vw2fh3/story/raw1_250.jpg">Diesem</a> und auch mit diesem <a href="http://www.moderntex.de/shop_cfg/Fotostudio/gruen3x3.jpg">Hier</a> . Sieht erstmal gut aus. Im Script sind die Variablen recht gut einsehbar, zB im Similar Bereich die Werte für Toleranz (60) und Antialiasing (10), danach auch noch Variablen, um die Selektion zu verbessern, Expand und Feather.</p>
<p>Wenn man am Scripting Gefallen findet, sollte man mit diesem  <a href="http://photoshoptutorials.ws/photoshop-tutorials/technical/manipulate-an-image-with-scripting.html">Tutorial</a> weitermachen.</p>
<p>mfg chmee</p>
 <p><a href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=280&amp;md5=7cde9eb4fac49347a5674e9afda33618" title="Flattr" target="_blank"><img src="http://www.phreekz.de/wordpress/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phreekz.de/wordpress/2009/07/photoshop-scripting-ii-getcolor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=280&amp;md5=7cde9eb4fac49347a5674e9afda33618" type="text/html" />"
	</item>
		<item>
		<title>Photoshop Scripting in JSX</title>
		<link>http://www.phreekz.de/wordpress/2009/03/photoshop-scripting-in-jsx/</link>
		<comments>http://www.phreekz.de/wordpress/2009/03/photoshop-scripting-in-jsx/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 21:41:53 +0000</pubDate>
		<dc:creator>chmee</dc:creator>
				<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[Video & Audio]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.phreekz.de/wordpress/?p=260</guid>
		<description><![CDATA[<<p><span style="color: #3366ff;"><span style="font-size: 150%; line-height: normal;"><span style="font-weight: bold;">Scripting für Photoshop</span></span></span><br />
Wenn man besondere Wege braucht, Photoshop es so nicht unterstützt oder wiederkehrende Arbeitsschritte in der Aktion nicht sinnvoll umgesetzt werden können, dann greift man zur ultramächtigen Scripting-Engine von Adobe. Das Schöne ist, die Scripts können komplette Arbeitsschritte sein, können aber auch Teilaufgaben in Aktionen ausführen. Hier werden nach und nach meine Scripts erscheinen.</p>
<p><span style="color: #3366ff;"><span style="font-weight: bold;">Wie kann ich sie benutzen ?</span></span><br />
Man kopiert den Code aus dem Codebereich und speichert ihn mittels eines simplen Texteditors in eine Datei, benennt sie dementsprechend (Endung . jsx) und kopiert jene in den Presets/<span style="color: #ffffbf;">Scripts</span>-Ordner. Nach einem Neustart von Photoshop findet man den Eintrag in Datei/File-&gt;<span style="color: #ffffbf;">Scripts</span>.</p>
<p><span style="color: #ff0000;"><span style="font-weight: bold;">Vorsicht!</span></span><br />
Ich fange keine Fehler in meinen Scripten ab, vorteilhaft ist dadurch die Kürze, nachteilig ist aber, dass man Fehler, wenn sie auftreten nicht erkennt. Zudem ist Jeder, der diese Scripts benutzt, für seine Daten selbst verantwortlich, also immer erst testen und selbst entscheiden, ob alles glatt läuft.</p>
<p><span style="color: #3366ff;"><span style="font-size: 150%; line-height: normal;"><span style="font-weight: bold;">SaveAsTIF</span></span></span><br />
Ganz einfaches Script, das von der aktuell geöffneten Datei eine TIF-Kopie im gleichen Ordner speichert. Man fragt sich, wozu so etwas ? Grundsätzlich geht es um den Einsatz in einer Aktion oder Batch, wo bei normalem Einsatz der &#8220;Speichern unter..&#8221;-Funktion dem Namen <span style="color: #ff0000;">-Kopie</span> anhängt UND der Speicherort fixiert bleibt ( Der Ordner, der beim Aktion-Erstellen benutzt wurde ). <span style="color: #ff0000;">Das Bild sollte vor dieser Scriptaktion auf eine Ebene zusammengelegt sein!</span></p>
<p>Da das Script sehr einfach und kurz ist, kann man es recht schnell an eigene Bedürfnisse anpassen.</p>
<p><span style="color: #3366ff;"><span style="font-weight: bold;">Script &#8211; SaveAsTIF.jsx</span></span><br />
<pre language="javascript">#target photoshop

var DokAktuell = app.activeDocument;
var DokFilename = DokAktuell.name;
var DokBasename = DokFilename.match(/(.*)\.[^\.]+$/)[1];
var DokPfad = DokAktuell.path;

var tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.imageCompression = TIFFEncoding.NONE;

DokAktuell.saveAs((new File(DokPfad+"/"+DokBasename+".tif")), tiffSaveOptions, false);</pre></p>
 <p><a href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=260&amp;md5=1e99c7c2c399893d477b3ea133e95a90" title="Flattr" target="_blank"><img src="http://www.phreekz.de/wordpress/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #3366ff;"><span style="font-size: 150%; line-height: normal;"><span style="font-weight: bold;">Scripting für Photoshop</span></span></span><br />
Wenn man besondere Wege braucht, Photoshop es so nicht unterstützt oder wiederkehrende Arbeitsschritte in der Aktion nicht sinnvoll umgesetzt werden können, dann greift man zur ultramächtigen Scripting-Engine von Adobe. Das Schöne ist, die Scripts können komplette Arbeitsschritte sein, können aber auch Teilaufgaben in Aktionen ausführen. Hier werden nach und nach meine Scripts erscheinen.</p>
<p><span style="color: #3366ff;"><span style="font-weight: bold;">Wie kann ich sie benutzen ?</span></span><br />
Man kopiert den Code aus dem Codebereich und speichert ihn mittels eines simplen Texteditors in eine Datei, benennt sie dementsprechend (Endung . jsx) und kopiert jene in den Presets/<span style="color: #ffffbf;">Scripts</span>-Ordner. Nach einem Neustart von Photoshop findet man den Eintrag in Datei/File-&gt;<span style="color: #ffffbf;">Scripts</span>.</p>
<p><span style="color: #ff0000;"><span style="font-weight: bold;">Vorsicht!</span></span><br />
Ich fange keine Fehler in meinen Scripten ab, vorteilhaft ist dadurch die Kürze, nachteilig ist aber, dass man Fehler, wenn sie auftreten nicht erkennt. Zudem ist Jeder, der diese Scripts benutzt, für seine Daten selbst verantwortlich, also immer erst testen und selbst entscheiden, ob alles glatt läuft.</p>
<p><span style="color: #3366ff;"><span style="font-size: 150%; line-height: normal;"><span style="font-weight: bold;">SaveAsTIF</span></span></span><br />
Ganz einfaches Script, das von der aktuell geöffneten Datei eine TIF-Kopie im gleichen Ordner speichert. Man fragt sich, wozu so etwas ? Grundsätzlich geht es um den Einsatz in einer Aktion oder Batch, wo bei normalem Einsatz der &#8220;Speichern unter..&#8221;-Funktion dem Namen <span style="color: #ff0000;">-Kopie</span> anhängt UND der Speicherort fixiert bleibt ( Der Ordner, der beim Aktion-Erstellen benutzt wurde ). <span style="color: #ff0000;">Das Bild sollte vor dieser Scriptaktion auf eine Ebene zusammengelegt sein!</span></p>
<p>Da das Script sehr einfach und kurz ist, kann man es recht schnell an eigene Bedürfnisse anpassen.</p>
<p><span style="color: #3366ff;"><span style="font-weight: bold;">Script &#8211; SaveAsTIF.jsx</span></span><br />
<pre language="javascript">#target photoshop

var DokAktuell = app.activeDocument;
var DokFilename = DokAktuell.name;
var DokBasename = DokFilename.match(/(.*)\.[^\.]+$/)[1];
var DokPfad = DokAktuell.path;

var tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.imageCompression = TIFFEncoding.NONE;

DokAktuell.saveAs((new File(DokPfad+"/"+DokBasename+".tif")), tiffSaveOptions, false);</pre></p>
 <p><a href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=260&amp;md5=1e99c7c2c399893d477b3ea133e95a90" title="Flattr" target="_blank"><img src="http://www.phreekz.de/wordpress/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phreekz.de/wordpress/2009/03/photoshop-scripting-in-jsx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.phreekz.de/wordpress/?flattrss_redirect&amp;id=260&amp;md5=1e99c7c2c399893d477b3ea133e95a90" type="text/html" />"
	</item>
	</channel>
</rss>

