Last active
December 11, 2015 08:38
-
-
Save bouze/4574058 to your computer and use it in GitHub Desktop.
サブフォルダを含む、フォルダ内のjpgの画質を一括で変換するPhotoshop用のjsx。
基本はダイアログで指定した画質に変換するが、親のフォルダ名が「quality-{数字}」という名前だったら以降の品質を{数字}に設定する。
※上書き保存されます
This file contains 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
preferences.rulerUnits = Units.PIXELS; | |
var JPG_QUALITY = 100; | |
var files; | |
var dst; | |
var defaultQuality = checkQualityValue(prompt("デフォルト画質(0~100)", 70)); | |
JPG_QUALITY = defaultQuality; | |
var folderName = Folder.selectDialog("フォルダを選択してください"); | |
if(folderName != null) | |
{ | |
openFolder(folderName); | |
} | |
function openFolder(path) | |
{ | |
var folder = new Folder(path); | |
var files = folder.getFiles(); | |
var targetList = []; | |
//もしフォルダ名がquality-{数字}という名前だったら以後の品質を{数字}に設定する | |
var result = folder.name.match(/quality-(\d+)/); | |
if (result) | |
{ | |
JPG_QUALITY = checkQualityValue(result[1]); | |
} | |
else | |
{ | |
//JPG_QUALITY = defaultQuality; | |
} | |
for (var i=0; i < files.length; i++) | |
{ | |
//Folder | |
if (files[i].constructor.name === 'Folder') | |
{ | |
openFolder(files[i]); | |
} | |
//File | |
else | |
{ | |
if(files[i].fsName.indexOf(".jpg") != -1 || files[i].fsName.indexOf(".jpeg") != -1) | |
{ | |
targetList.push(files[i]); | |
} | |
} | |
} | |
dirProcess(targetList, folder); | |
} | |
function dirProcess(files, folder) | |
{ | |
$.writeln("\n---------------\nFolder:", folder); | |
for (var i = 0; i < files.length; i++) | |
{ | |
if(files[i]) | |
{ | |
var file = open(files[i]); | |
saveJPEG(folder + "/" + file.name); | |
close(file); | |
} | |
} | |
} | |
function checkQualityValue(num) | |
{ | |
num = (num == null || num == undefined || num == NaN)? 70 : num; | |
num = (num >= 100)? 100 : num; | |
num = (num < 0)? 0 : num; | |
return num; | |
} | |
function saveJPEG(name) | |
{ | |
var exp = new ExportOptionsSaveForWeb(); | |
exp.format = SaveDocumentType.JPEG; | |
exp.interlaced = false; | |
exp.optimized= false; | |
exp.quality = JPG_QUALITY; | |
fileObj = new File(name); | |
$.writeln("品質:" + JPG_QUALITY + ", " + fileObj); | |
activeDocument.exportDocument(fileObj, ExportType.SAVEFORWEB, exp); | |
} | |
function close(dst) | |
{ | |
dst.close(SaveOptions.DONOTSAVECHANGES); | |
dst = null; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment