Skip to main content
Participant
September 4, 2014
Question

Error 1220: Illegal Argument, please help!

  • September 4, 2014
  • 1 reply
  • 1610 views

Hey,

The script I'm trying to write is fairly simple. I'm just at the beginning stages and I've hit this bug that I haven't been able to resolve. Whenever I run my program, I get a Error 1220 at the following line.

Line: 95 ->  var myNewDoc = app.documents.add(tempWidth,tempHeight,72,"exportedLayer", NewDocumentMode.RGB,DocumentFill.TRANSPARENT);

The code follows, any help would be greatly appreciated!

#target photoshop

function raterizeLayerStyle(){

    var idrasterizeLayer = stringIDToTypeID( "rasterizeLayer" );

    var desc5 = new ActionDescriptor();

    var idnull = charIDToTypeID( "null" );

        var ref4 = new ActionReference();

        var idLyr = charIDToTypeID( "Lyr " );

        var idOrdn = charIDToTypeID( "Ordn" );

        var idTrgt = charIDToTypeID( "Trgt" );

        ref4.putEnumerated( idLyr, idOrdn, idTrgt );

    desc5.putReference( idnull, ref4 );

    var idWhat = charIDToTypeID( "What" );

    var idrasterizeItem = stringIDToTypeID( "rasterizeItem" );

    var idlayerStyle = stringIDToTypeID( "layerStyle" );

    desc5.putEnumerated( idWhat, idrasterizeItem, idlayerStyle );

    executeAction( idrasterizeLayer, desc5, DialogModes.NO );

}

var docRef = app.activeDocument;

for (var x = 0; x < docRef.artLayers.length; x++)

{

  var activeLay = docRef.artLayers;

  var newLayer = activeLay.duplicate();

    newLayer.rasterize(RasterizeType.ENTIRELAYER);

    docRef.activeLayer = newLayer;

    raterizeLayerStyle();

    newLayer.copy();

   

  var a = new File("/Users/aryamansharda/Desktop/PhotoshopScriptTest/test.txt");

  a.open('a');

  a.writeln(newLayer.bounds[0]);

  a.writeln(newLayer.bounds[1]);

  a.close();

  var tempWidth = newLayer.bounds[2] - newLayer.bounds[0];

  var tempHeight = newLayer.bounds[3] - newLayer.bounds[1];

  var myNewDoc = app.documents.add(tempWidth,tempHeight,72,"exportedLayer", NewDocumentMode.RGB,DocumentFill.TRANSPARENT);

  var targetLayer = myNewDoc.artLayers.add();

  myNewDoc.paste();

  targetLayer.opacity = activeLay.opacity;

  var options = new ExportOptionsSaveForWeb(); 

  options.format = SaveDocumentType.PNG;

  options.PNG8 = false;

  options.transparency = true;

  options.optimized = true;

  myNewDoc.exportDocument(File(docRef.path+'/export '+ activeLay.name +'.png'),ExportType.SAVEFORWEB, options);

  myNewDoc.close (SaveOptions.DONOTSAVECHANGES);

  newLayer.remove();

}

This topic has been closed for replies.

1 reply

JJMack
Community Expert
Community Expert
September 7, 2014

Maybe you will get a clue from this:

var startRulerUnits = app.preferences.rulerUnits;

app.preferences.rulerUnits = Units.PIXELS; // tell ps to work with pixels

var tempWidth=100;

var tempHeight=100;

var myNewDoc = app.documents.add(tempWidth,tempHeight,72,"exportedLayer", NewDocumentMode.RGB,DocumentFill.TRANSPARENT);

app.preferences.rulerUnits = Units.PERCENT; // tell ps to work with percent

var myNewDoc = app.documents.add(tempWidth,tempHeight,72,"exportedLayer", NewDocumentMode.RGB,DocumentFill.TRANSPARENT);

app.preferences.rulerUnits = startRulerUnits;

JJMack