-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWizBang.gpc
38 lines (36 loc) · 7.48 KB
/
WizBang.gpc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8"?>
<gpc defaultLocale="en_US" version="4" keySequence="15" currentLocale="en_US">
<product appid="PHSP" version="13" name="Photoshop CS6"/>
<target id="PHSP-13"/>
<ConfiguratorPanel name="WizBang" width="220" height="92" init="doInit" close="doClose" persistent="true" extensionId="com.configurator.WizBang" extensionVersion="1.0.2" menuName="WizBang" flyoutMenuAbout="$$$/Configurator/FlyoutMenu/about" normalIcon="res/res1_ext_icon.png" darkNormalIcon="res/ext_icon.png">
<onInit><![CDATA[]]></onInit>
<aboutBox><![CDATA[]]></aboutBox>
<extensionDescription><![CDATA[Converts Layer names to optimized web images automaticallyTurns a photoshop layer named: "{retina:true}logo.mini.png" into a transparent web optimized PNG named "logo.mini.png" and creates 2x retina version named "[email protected]" in a folder that you specify... All with correct dimensions and flattened layers styles.Layer name into image! Behold!]]></extensionDescription>
<extensionAuthor><![CDATA[Samcreate]]></extensionAuthor>
<onClose><![CDATA[]]></onClose>
<eventListeners>
<function id="doInit" actionType="jsfunction" jsFunctionName="invoke_script">
<param id="onInit"/>
</function>
<function id="doClose" actionType="jsfunction" jsFunctionName="invoke_script">
<param id="onClose"/>
</function>
</eventListeners>
<text _itemId="widget_text" toolTip="$$$/Configurator/Widget/Text/desc" styleName="scopeTextArea" width="220" height="36" backgroundAlpha="0" cfgVisible="$$$/Configurator/Attribute/visible/value###11" fontFamily="League Gothic" fontSize="24" color="0xffffff" fontWeight="bold" fontStyle="normal" textDecoration="none" textAlign="center" backgroundColor="16777215" borderColor="12040892" borderStyle="solid" borderThickness="0" dropShadowEnabled="false" x="0" y="0">
<text><![CDATA[$$$/Configurator/key_###12]]></text>
</text>
<ps_script _itemId="ps_actionscript_script" label="$$$/Configurator/ActionScript/Script/name###13" toolTip="$$$/Configurator/ActionScript/Script/desc###14" cfgVisible="$$$/Configurator/Attribute/visible/value###15" click="onClick" icon="ps_script" overIcon="ps_script_r" showIcon="false" x="64" y="45" width="91" height="21">
<script><![CDATA[var wizbang={};wizbang.global={original_doc:app.activeDocument,export_folder:null};wizbang.util=function(){var e={rasterizeLayerStyle:function(){var e=stringIDToTypeID("rasterizeLayer");var t=new ActionDescriptor;var n=charIDToTypeID("null");var r=new ActionReference;var i=charIDToTypeID("Lyr ");var s=charIDToTypeID("Ordn");var o=charIDToTypeID("Trgt");r.putEnumerated(i,s,o);t.putReference(n,r);var u=charIDToTypeID("What");var a=stringIDToTypeID("rasterizeItem");var f=stringIDToTypeID("layerStyle");t.putEnumerated(u,a,f);executeAction(e,t,DialogModes.NO)},getWH:function(e){var t=e.bounds[2]-e.bounds[0];var n=e.bounds[3]-e.bounds[1];return{w:t,h:n}},hexToRgb:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},dup_doc:function(t,n,r,i,s){app.activeDocument=wizbang.global.original_doc;wizbang.global.original_doc.activeLayer=r;var o=wizbang.global.original_doc.activeLayer;var u=o.duplicate();var a=i==true?2:1;u.name="Wizurd Spell";wizbang.global.original_doc.activeLayer=u;u.translate(new UnitValue(0-u.bounds[0].as("px"),"px"),new UnitValue(0-u.bounds[1].as("px"),"px"));e.resizeLayerInPixels(u,s.w,s.h,false);if(i){u.resize(200,200,AnchorPosition.TOPLEFT)}u.rasterize(RasterizeType.ENTIRELAYER);wizbang.util.rasterizeLayerStyle();u.copy();var f=app.documents.add(t*a,n*a,72,"WizurdMagik",NewDocumentMode.RGB,DocumentFill.TRANSPARENT);var l=f.artLayers.add();f.paste();l.opacity=o.opacity;f.trim(TrimType.TRANSPARENT);app.activeDocument=wizbang.global.original_doc;u.remove();return f},trim:function(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},resizeLayerInPixels:function(e,t,n,r){var i=preferences.rulerUnits;preferences.rulerUnits=Units.PIXELS;var s=e.bounds;var o=100/(s[2].value-s[0].value);var u=100/(s[3].value-s[1].value);var a=o*t;var f=u*n;if(r)f=a;e.resize(Number(a),Number(f),AnchorPosition.MIDDLECENTER);app.preferences.rulerUnits=i}};return e}();wizbang.imageTypes=function(){function t(e,t,n,r,i,s){wizbang.app.final_save_step(e,t,n);if(r.retina){var o=wizbang.util.dup_doc(i.w,i.h,s,true,r);wizbang.app.final_save_step(o,t,n,true)}}var e={export_png:function(e,n,r){var i=wizbang.util.getWH(e);r.png8=r.png8||false;r.matte=r.matte||false;r.retina=r.retina||false;r.w=r.w||i.w;r.h=r.h||i.h;var s=wizbang.util.dup_doc(i.w,i.h,e,false,r);var o=new ExportOptionsSaveForWeb;o.format=SaveDocumentType.PNG;o.PNG8=r.png8;if(r.matte){var u=wizbang.util.hexToRgb(r.matte);var a=new RGBColor;a.red=u.r;a.green=u.g;a.blue=u.b;o.matteColor=a}o.transparency=r.transparency||true;t(s,n,o,r,i,e);$.writeln("export_png called! name: "+n)},export_jpg:function(e,n,r){var i=wizbang.util.getWH(e);r.retina=r.retina||false;r.quality=r.quality||80;r.w=r.w||i.w;r.h=r.h||i.h;var s=wizbang.util.dup_doc(i.w,i.h,e,false,r);var o=new ExportOptionsSaveForWeb;o.format=SaveDocumentType.JPEG;o.quality=r.quality;t(s,n,o,r,i,e);$.writeln("export_jpg called! name: "+n)},export_gif:function(e,n,r){var i=wizbang.util.getWH(e);var s=new ExportOptionsSaveForWeb;r.retina=r.retina||false;r.matte=r.matte||false;r.w=r.w||i.w;r.h=r.h||i.h;var o=wizbang.util.dup_doc(i.w,i.h,e,false,r);s.ditherAmount=0;s.dither=Dither.NOISE;s.palette=Palette.LOCALADAPTIVE;s.format=SaveDocumentType.COMPUSERVEGIF;if(r.matte){var u=wizbang.util.hexToRgb(r.matte);var a=new RGBColor;a.red=u.r;a.green=u.g;a.blue=u.b;s.matteColor=a}t(o,n,s,r,i,e);$.writeln("export_gif called! name: "+n)}};return e}();wizbang.app=function(){function findImageLayers(ref){var layers=ref.layers;var len=layers.length;for(var i=0;i<len;i++){var layer=layers[i];if(layer.typename=="LayerSet"){findImageLayers(layer)}else{var isImage=new RegExp(/\.(gif|jpg|jpeg|tiff|png)$/i);if(isImage.test(layer.name)&&layer.visible){var name_parts=layer.name.split(".");var type=name_parts[name_parts.length-1];var export_function="export_"+type.toLowerCase();var options=layer.name.match(/\{(.*?)\}/);var imageName=layer.name.split("}")[1]||layer.name;try{var options=eval("("+options[0]+")")}catch(e){var options={}}try{if(flag==0){wizbang.imageTypes[export_function](layer,imageName,options)}}catch(e){$.writeln(e)}}}}}var flag=0;var self={run:function(){wizbang.global.export_folder=Folder.selectDialog("Select a folder to export images");if(wizbang.global.export_folder!=null){findImageLayers(activeDocument);$.sleep(2e3);alert("Wizbang: Finished Export!")}else{alert("Wizbang: Export Canceled!")}},final_save_step:function(e,t,n,r){app.activeDocument=e;if(r){var i=t.substring(0,t.length-4);var s=t.substring(t.length-4,t.length);t=i+"@2x"+s}t=wizbang.util.trim(t);e.exportDocument(File(wizbang.global.export_folder+"/"+t),ExportType.SAVEFORWEB,n);e.close(SaveOptions.DONOTSAVECHANGES);app.activeDocument=wizbang.global.original_doc}};return self}();app.activeDocument.suspendHistory("Wizbang Export","wizbang.app.run()")]]></script>
<eventListeners>
<function id="onClick" actionType="jsfunction" jsFunctionName="ps_invoke_script">
<param id="script"/>
</function>
</eventListeners>
</ps_script>
<watermark height="17" x="$$$/Configurator/watermark/x" width="$$$/Configurator/watermark/width" bottom="0" right="0" y="75" cfgVisible="false">
<htmlText><![CDATA[$$$/Configurator/watermark/htmlText]]></htmlText>
</watermark>
</ConfiguratorPanel>
</gpc>