Почему файлы пакетов Photoshop не сжимаютJavascript

Форум по Javascript
Ответить
Anonymous
 Почему файлы пакетов Photoshop не сжимают

Сообщение Anonymous »

Я пытаюсь изменить размер, а сжатие пакетного файла - Photoshop. Он делает все остальное, изменяйте размер, создает папки и сохраняет. Но это, похоже, не сжимает изображения. Есть идеи, почему это будет? Я пробовал много вариантов этого, я использовал Google и LLMS. Единственная разница, которую я получаю, - это полная неудача. Как сказано, это почти сработает, это просто не будет сжимать изображения. < /P>


// variables
var inputFolder = Folder.selectDialog("SELECT A FOLDER OF IMAGES TO RESIZE");
var outputFolder = inputFolder

// check that the folder has files in it
if (inputFolder != null) {
var fileList = inputFolder.getFiles(/.+\.(?:gif|jpe?g|[ew]mf|eps|tiff?|psd|pdf|bmp|png)$/i);
} else {
alert("Couldn't find any files. Check your directory path and try again.");
Exit();
}

// set background color
var BGcolor = new SolidColor();
BGcolor.rgb.red = 255;
BGcolor.rgb.green = 255;
BGcolor.rgb.blue = 255;

// set your color as background color
backgroundColor.rgb.hexValue = BGcolor.rgb.hexValue;

// new image sizes
var large = 900;
var normal = 600;
var thumbnail = 300;

// new image name extentions
var largeNameExt = '_l';
var normalNameExt = '_n';
var thumbnailNameExt = '_t';

// set jpeg save options
var jpegSaveOptions = new JPEGSaveOptions();
jpegSaveOptions.embedColorProfile = true;
jpegSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpegSaveOptions.matte = MatteType.NONE;
jpegSaveOptions.quality = 12;

// error logging
var errors = [];

/*
Function: createFolder
Description: creates the new folders for export
imageSize: the new image size used to create the folder path
*/
function createFolders(imageSize) {
var addFolder = new Folder(outputFolder + '/' + imageSize.toString() + 'px' + '/');
addFolder.create();
} // createFolders

// Set jpeg save options with quality adjustments
function setJPEGQuality(saveOptions, targetSizeKB) {
var quality = 12; // Start with maximum quality
var tempFile = new File("~/Desktop/temp.jpg");

do {
saveOptions.quality = quality;
doc.saveAs(tempFile, saveOptions, true, Extension.LOWERCASE);
var fileSize = tempFile.length / 1024; // Convert bytes to KB

if (fileSize > targetSizeKB) {
quality -= 1; // Reduce quality to decrease file size
} else {
break; // Exit the loop if target size is met
}
} while (quality > 0);

tempFile.remove(); // Clean up the temp file
}

// CreateImages function
function createImages() {
// add new folder paths
createFolders(large);
createFolders(normal);
createFolders(thumbnail);

// trim the images then resize
for (var i = 0; i < fileList.length; i++) {
// open the image
try {
var doc = app.open(fileList);
// set the output locations and names
var fileName = fileList.name.replace(/\.(?:gif|jpe?g|[ew]mf|eps|tiff?|psd|pdf|bmp|png)$/, '');
var saveImgLarge = new File(outputFolder + "/" + large.toString() + 'px' + '/' + fileName + largeNameExt + '.jpg');
var saveImgNormal = new File(outputFolder + "/" + normal.toString() + 'px' + '/' + fileName + normalNameExt + '.jpg');
var saveImgThumbnail = new File(outputFolder + "/" + thumbnail.toString() + 'px' + '/' + fileName + thumbnailNameExt + '.jpg');

// trim whitespace
doc.trim();

// Resize and save images
// Large
if (doc.height > doc.width) {
doc.resizeImage(null, UnitValue(large, "px"), 72, ResampleMethod.BICUBICAUTOMATIC);
} else {
doc.resizeImage(UnitValue(large, "px"), null, 72, ResampleMethod.BICUBICAUTOMATIC);
}
doc.resizeCanvas(large, large, AnchorPosition.MIDDLECENTER);
setJPEGQuality(jpegSaveOptions, 70); // Adjust quality to target size 70 KB
doc.saveAs(saveImgLarge, jpegSaveOptions, true, Extension.LOWERCASE);

// Normal
doc.resizeImage(UnitValue(normal, "px"), UnitValue(normal, "px"), 72, ResampleMethod.BICUBICAUTOMATIC);
setJPEGQuality(jpegSaveOptions, 50); // Adjust quality to target size 50 KB
doc.saveAs(saveImgNormal, jpegSaveOptions, true, Extension.LOWERCASE);

// Thumbnail
doc.resizeImage(UnitValue(thumbnail, "px"), UnitValue(thumbnail, "px"), 72, ResampleMethod.BICUBICAUTOMATIC);
setJPEGQuality(jpegSaveOptions, 20); // Adjust quality to target size 20 KB
doc.saveAs(saveImgThumbnail, jpegSaveOptions, true, Extension.LOWERCASE);

doc.close(SaveOptions.DONOTSAVECHANGES);
} catch (err) {
errors.push(fileList.name);
}
}
}

createImages();

if (errors.length > 0) {
alert("Oops! We ran into some errors.\nWhile the program did run successfully, you will still need to double-check the files listed below for issues like these:" + "\n\n1) Files are corrupt (files don't open, or cause an error when you try to open them)\n2) Files have unusual characters in their file names\n3) Files are not one of these types of image files:\ngif, jpeg, jpg, eps, tiff, tif, psd, pdf, bmp, png" + "\n\n*** FILE ERRORS ***\n" + errors.join("\n"));
} else {
alert("Task Completed!");
}
< /code>
Я попробовал приведенный выше код (любые множество вариантов). Я ожидаю, что он изменит размер и сжатие изображений.

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-compress
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»