Created
December 5, 2015 20:01
-
-
Save aalexeev239/afbbc6721747ebca3bd9 to your computer and use it in GitHub Desktop.
aa-zoomify
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// copied from https://gist.github.com/davidmerrique/4066808 | |
var inFolder = Folder.selectDialog("Please select folder to process"); | |
var defaults = { | |
type: "w", | |
quality: 50, | |
sizes: [1680, 1000, 640] | |
}; | |
var settings = defaults; | |
var matches = { | |
"w": "width", | |
"h": "height" | |
}; | |
if(inFolder !== null) { | |
var fileList = inFolder.getFiles(/\.(jpg|tif|psd|)$/i); | |
var outfolderName = prompt('Folder name', 'zoom'); | |
var outfolder = new Folder(decodeURI(inFolder) + "/" + outfolderName); | |
if (!outfolder.exists) outfolder.create(); | |
for(var a = 0; a < fileList.length; a++) { | |
if(fileList[a] instanceof File) { | |
var doc = open(fileList[a]); | |
var docname = fileList[a].name.replace(/\.[^\.]+$/, ''); | |
setValues(); | |
zoomify(); | |
doc.close(SaveOptions.DONOTSAVECHANGES); | |
} | |
} | |
} | |
function setValues() { | |
var str = stringifyValues(settings); | |
var confirmDefaults = prompt(str + '\n======================\nType anything to agree', ''); | |
if (confirmDefaults) { | |
return; | |
} else { | |
var type = prompt('What the type? width(w) or height(h)?',matches[settings.type]); | |
if (type && (type.match(/^h$/i) || type.match(/height/i))) { | |
settings.type = "h"; | |
} else { | |
settings.type = "w"; | |
} | |
var quality = parseInt(prompt('Set quality',settings.quality),10); | |
if (!isNaN(quality) && quality > 0) { | |
settings.quality = quality; | |
} | |
var sizesString = prompt('Selected type – '+ matches[settings.type] + '\n Type sizes, divided by space', settings.sizes.join(' ')); | |
if (sizesString) { | |
settings.sizes = []; | |
var sizesArray = sizesString.split(" "); | |
for (var i = 0; i < sizesArray.length; i++) { | |
var item = parseInt(sizesArray[i], 10); | |
if (!isNaN(item) && item > 0) { | |
settings.sizes.push(item); | |
} | |
}; | |
} | |
setValues(); | |
} | |
} | |
function stringifyValues(settings) { | |
var output = 'Your settings are \n======================\n'; | |
switch (settings.type) { | |
case 'w': | |
output += 'Type of resizing: \nWidth \n'; | |
break; | |
case 'h': | |
output += 'Type of resizing: \nHeight \n'; | |
break; | |
default: | |
output += 'Error! No type of resizing set \n'; | |
} | |
output += 'Selected quality: \n'; | |
output += settings.quality + '\n'; | |
output += 'Selected sizes: \n'; | |
output += settings.sizes.join(', '); | |
return output; | |
} | |
function zoomify() { | |
var savedRuler = app.preferences.rulerUnits; | |
var w = app.activeDocument.width; | |
var h = app.activeDocument.height; | |
var quality = 50; | |
// app.preferences.rulerUnits = Units.PIXELS; | |
// if(w > h) app.activeDocument.resizeCanvas (w, w, AnchorPosition.MIDDLECENTER); | |
// if(w < h) app.activeDocument.resizeCanvas (h, h, AnchorPosition.MIDDLECENTER); | |
// app.activeDocument.resizeImage('2560px', undefined, undefined, ResampleMethod.BICUBICSHARPER); | |
// app.preferences.rulerUnits = savedRuler; | |
// for(var i = 4; i >= 0; i--) { | |
// var outfolder = new Folder(decodeURI(inFolder) + "/" + outfolderName + "/" + docname + "/TileGroup0"); | |
// if (outfolder.exists === false) outfolder.create(); | |
// var saveFile = new File(decodeURI(outfolder) + "/" + i + "-0-0.jpg"); | |
// SaveJPEG(saveFile, quality); | |
// app.activeDocument.resizeImage('50%','50%', undefined, ResampleMethod.BICUBICSHARPER); | |
// quality = quality + 10; | |
// } | |
app.preferences.rulerUnits = Units.PIXELS; | |
for(var i = settings.sizes.length - 1; i >= 0; i--) { | |
// var outfolder = new Folder(decodeURI(inFolder) + "/" + outfolderName + "/" + docname + "/TileGroup0"); | |
var outfolder = new Folder(decodeURI(inFolder) + "/" + outfolderName + "/"); | |
if (outfolder.exists === false) outfolder.create(); | |
var compW = 0; | |
var compH = 0; | |
if (settings.type === "w") { | |
compW = settings.sizes[i]; | |
compH = Math.floor(h * compW / w ); | |
} else { | |
compH = settings.sizes[i]; | |
compW = Math.floor(w * compH / h ); | |
} | |
app.activeDocument.resizeImage(compW,compH, undefined, ResampleMethod.BICUBICSHARPER); | |
var saveFile = new File(decodeURI(outfolder) + "/" + | |
docname + "_" + | |
settings.type + "_" + | |
settings.sizes[i] + "_" + | |
settings.quality + '.jpg'); | |
SaveJPEG(saveFile, quality); | |
} | |
app.preferences.rulerUnits = savedRuler; | |
} | |
function SaveJPEG(saveFile, quality) { | |
var exportOptionsSaveForWeb = new ExportOptionsSaveForWeb(); | |
exportOptionsSaveForWeb.format = SaveDocumentType.JPEG; | |
exportOptionsSaveForWeb.includeProfile = false; | |
exportOptionsSaveForWeb.interlaced = true; | |
exportOptionsSaveForWeb.optimized = true; | |
exportOptionsSaveForWeb.quality = quality; | |
activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB,exportOptionsSaveForWeb); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment