// (c) Copyright 2005. Adobe Systems, Incorporated. All rights reserved.
/** "$$$/JavaScripts/ResizeOnOpen/Description=Pop the image size dialog. Pre populate the menu with 100 x 100 pixels." **/
// on localized builds we pull the $$$/Strings from a .dat file, see documentation for more details
$.localize = true;
var startRulerUnits;
var startTypeUnits;
var startDisplayDialogs;
try {
startDisplayDialogs = displayDialogs;
// Поскольку скриптинг изменяет действительные единицы измерения (что по идее
// есть маразм) то работает доброе правило сохранять текущие настройки чтобы в
// конце выполнения скрипта (если он не вывалится по ошибке) их вернуть, типа
// как ни в чем не бывало. Ниже настройки сохраняются в переменные.
startRulerUnits = preferences.rulerUnits;
startTypeUnits = preferences.typeUnits;
displayDialogs = DialogModes.NO;
// Затем, вот как устанавливаются единицы измерения документов.
preferences.rulerUnits = Units.PIXELS;
// Следующая строка это для шрифтов, для данного случая - не нужно.
preferences.typeUnits = TypeUnits.PIXELS;
// Ниже идет проверка - имеет ли текущий документ высоту и ширину не равную 100 (пикселам).
if ( activeDocument.width != 100 || activeDocument.height != 100 ) {
// Вызов диалога нам не нужен. Это просто скрипт такой.
displayDialogs = DialogModes.ALL;
// Ну вот оно, ресайзится. Кроме конечных размеров указывается разрешение
// - в данном случае 72 ppi.
//А вот скажите - почему у вас оно равно 10???
activeDocument.resizeImage( 100, 100, 72, ResampleMethod.BICUBIC );
displayDialogs = DialogModes.NO;
}
// Теперь настройки линейки восстанавливаются.
displayDialogs = startDisplayDialogs;
preferences.rulerUnits = startRulerUnits;
preferences.typeUnits = startTypeUnits;
}
// Уловка ошибок. Если скрипт вывалится по ошибке, то какая-то его часть не
// будет выполнена, например та часть, где восстаналиваются настройки, поэтому в программировании предусмотрена конструкция улавливающая ошибки и выполняющая заданный внутри нее код:
catch(e) {
// always wrap your script with try/catch blocks so you don't stop production
// remove comments below to see error for debugging
// alert( e );
if ( undefined != startDisplayDialogs ) {
displayDialogs = startDisplayDialogs;
}
if ( undefined != startRulerUnits ) {
preferences.rulerUnits = startRulerUnits;
}
if ( undefined != startTypeUnits ) {
preferences.typeUnits = startTypeUnits;
}
}