adobephotoshopextendscriptphotoshop-script

Adobe Photoshop script change


I found this script for creating iOS icons online and I want to edit it so it works on the currently opened file instead of the file opener thingy (programmingnoob language). I'm creating a tool with Adobe configurator 4 to help me speed up my icon design process.

try
{
// Prompt user to select iTunesArtwork file. Clicking "Cancel" returns null.
var iTunesArtwork = File.openDialog("Select a sqaure PNG file that is at least    1024x1024.", "*.png", false);

if (iTunesArtwork !== null) 
{ 
var doc = open(iTunesArtwork, OpenDocumentType.PNG);

if (doc == null)
{
  throw "Something is wrong with the file.  Make sure it's a valid PNG file.";
}

var startState = doc.activeHistoryState;       // save for undo
var initialPrefs = app.preferences.rulerUnits; // will restore at end
app.preferences.rulerUnits = Units.PIXELS;     // use pixels

if (doc.width != doc.height)
{
    throw "Image is not square";
}
else if ((doc.width < 1024) && (doc.height < 1024))
{
    throw "Image is too small!  Image must be at least 1024x1024 pixels.";
}
else if (doc.width < 1024)
{
    throw "Image width is too small!  Image width must be at least 1024 pixels.";
}
else if (doc.height < 1024)
{
    throw "Image height is too small!  Image height must be at least 1024 pixels.";
}

// Folder selection dialog
var destFolder = Folder.selectDialog( "Choose an output folder");

if (destFolder == null)
{
  // User canceled, just exit
  throw "";
}

// Save icons in PNG using Save for Web.
var sfw = new ExportOptionsSaveForWeb();
sfw.format = SaveDocumentType.PNG;
sfw.PNG8 = false; // use PNG-24
sfw.transparency = true;
doc.info = null;  // delete metadata

var icons = [
  {"name": "iTunesArtwork@2x", "size":1024},
  {"name": "iTunesArtwork",    "size":512},
  {"name": "Icon",             "size":57},
  {"name": "Icon@2x",          "size":114},
  {"name": "Icon-72",          "size":72},
  {"name": "Icon-72@2x",       "size":144},
  {"name": "Icon-Small",       "size":29},
  {"name": "Icon-Small@2x",    "size":58},
  {"name": "Icon-Small-50",    "size":50},
  {"name": "Icon-Small-50@2x", "size":100}
];

var icon;
for (i = 0; i < icons.length; i++) 
{
  icon = icons[i];
  doc.resizeImage(icon.size, icon.size, // width, height
                  null, ResampleMethod.BICUBICSHARPER);

  var destFileName = icon.name + ".png";

  if ((icon.name == "iTunesArtwork@2x") || (icon.name == "iTunesArtwork"))
  {
    // iTunesArtwork files don't have an extension
    destFileName = icon.name;
  }

  doc.exportDocument(new File(destFolder + "/" + destFileName), ExportType.SAVEFORWEB, sfw);
  doc.activeHistoryState = startState; // undo resize
}

alert("iOS Icons created!");
}
}
catch (exception)
{
// Show degbug message and then quit
if ((exception != null) && (exception != ""))
alert(exception);
 }
finally
{
if (doc != null)
    doc.close(SaveOptions.DONOTSAVECHANGES);

app.preferences.rulerUnits = initialPrefs; // restore prefs
}

Solution

  • Change these lines

    var iTunesArtwork = File.openDialog("Select a sqaure PNG file that is at least
    
        1024x1024.", "*.png", false);
    
    if (iTunesArtwork !== null) 
    { 
    var doc = open(iTunesArtwork, OpenDocumentType.PNG);
    

    to say

    var doc = app.activeDocument;