Округление размеров до целых мм и их использование в названии при сохранении в tiff... (скриптинг))

  • Автор темы Автор темы Merelin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Merelin

Участник
Топикстартер
Сообщения
4
Реакции
0
Добрый День.

Задача: Для группы файлов применить скрипт, который выцепляет размеры файлов и прописывает их в мм при сохранении в имени файла.
Пример: у нас есть jpg А4 формата с именем classic.jpg
Его надо превратить в tif c названием 297x210_classic.tif

Для подобной задачи пишу скрипт, но
Есть пара вопросов:
1. Как описать функцию округления значения ширины и высоты документа до целого значения?
2. Корректно сохранить файл в tiff с необходимым названием?

Пока как итог выходит на финише следующее 297.010666666667 mm_x_209.973333333333 mm[Document classic.tif
(и причем сохраняется на рабочий стол - а хотелось бы в ту же папку где и лежит исходник. WinXP, CS5)

Ниже привожу пример скрипта(в нем пока создается ещё три текстовых слоя чтобы следить за параметрами):

PHP:
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.MM;

var docRef = app.activeDocument;
var docFileName = docRef.FullName;
doc = app.activeDocument;

file = new File(doc.fullName.fsName); 

var fileName = decodeURI(docRef.name.slice(0,activeDocument.name.lastIndexOf('.'))); 

var textColor = new SolidColor;
textColor.cmyk.cyan = 0;
textColor.cmyk.magenta = 100;
textColor.cmyk.yellow = 100;
textColor.cmyk.black = 20;

var W = docRef.width
var H = docRef.height

var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.position = Array(9.8,20);
newTextLayer.textItem.size = 14;
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.font = "Tahoma"; 
newTextLayer.textItem.contents = W;

var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.position = Array(9.8,40);
newTextLayer.textItem.size = 14;
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.font = "Tahoma"; 
newTextLayer.textItem.contents = H;

var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.position = Array(9.8,60);
newTextLayer.textItem.size = 14;
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.font = "Tahoma"; 
newTextLayer.textItem.contents = fileName;


function SaveAsTIFF( docRef, saveAsName ) {
    var tso = new TiffSaveOptions();
    tso.embedColorProfile = false;
    tso.imageCompression = TIFFEncoding.NONE;
    tso.byteOrder = ByteOrder.IBM;
    docRef.saveAs( File( saveAsName ), tso );
}

var fileName = app.activeDocument;
SaveAsTIFF (docRef, (W +"_x_" + H + fileName));

app.preferences.rulerUnits = strtRulerUnits;
 
Ответ: Округление размеров до целых мм и их использование в названии при сохранении в tiff... (скриптинг))

Оно?

Код:
var a = Math.round (12.3) //returns 12
var a = Math.round (12.6) //returns 13

var a = Math.ceil (12.3) //returns 13
var a = Math.ceil (12.6) //returns 13

var a = Math.floor (12.3) //returns 12
var a = Math.floor (12.6) //returns 12
 
Ответ: Округление размеров до целых мм и их использование в названии при сохранении в tiff... (скриптинг))

да, помогло это) Спасибо...

Код:
var z = Math.round (H) 
var k = Math.round (W)

но теперь конечное название выглядит как... 297x210_[Document PICT0048.tif

и кстати сохраняется в папку исходников, хотя нет... размещает в последню папку куда производилось сохранение... наверное это что-то с настройками CS5?!
не понимаю откуда он берет эту часть - "[Document " ???
 
Ответ: Округление размеров до целых мм и их использование в названии при сохранении в tiff... (скриптинг))

Естественно, это app.activeDocument
Зачем вам такая бессмысленная замысловатая конструкция:

Код:
var docRef = app.activeDocument;
var docFileName = docRef.FullName;
doc = app.activeDocument;

file = new File(doc.fullName.fsName); 

var fileName = decodeURI(docRef.name.slice(0,activeDocument.name.lastIndexOf('.'))); 
...
fileName=app.activeDocument
 
Ответ: Округление размеров до целых мм и их использование в названии при сохранении в tiff... (скриптинг))

всем спасибо!
решил вопрос так:

Код:
...
filePath = docRef.path;
...    
var fileName = docRef.name.slice(".")
...
var W = Math.round(docRef.width);
var H = Math.round(docRef.height);
...
SaveAsTIFF (filePath + "/" + (W +"_x_" + H + fileName));
...
 
Статус
Закрыто для дальнейших ответов.