Render.ru

путь до файла в Photoshop

#22
Ну вот, значит все нормально. Просто он задается в пунктах, а это значит что если у вас картинка 2000 на 3000 пикселов но 72 ппи, то текст будет такой мелкий, что фиг его увидишь. Тем более что он еще и белый.

Цвет менять просто - там три свойства объекта SolidColor который отождествляет переменная textColor, вот, меняйте числа как обычно для RGB, вот я сделал так, чтобы был красный:

textColor.rgb.red = 255;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;

Соответственно и другие цвета также. Кстати, я там добавил в предыдущий постинг еще инфо по пользованию этим скриптом - перечитайте его пожалуйста.
 
#23
Координаты:

newTextLayer.textItem.position = Array(0, docRef.height);

где Array(x, y) ...

в общем, если вы перечитали мой постинг где описано как работает скрипт то уже поняли: вы можете сами создать текстовый слой с именем FullDocumentPath (большие и маленькие буквы имеют значение), назначить ему нужные свойства: расположение, цвет, кегль, гарнитуру, а затем скрипт будет просто в этот текстовый слой писать текст - полный путь документа в маковецком формате.

То есть, вы можете поступить просто: запишите экшн который бы создавал такой слой со всеми нужными свойствами, а следом запустите этот скрипт. И все. Затем при запуске экшна он будет создавать слой с заданным именем в нужном месте документа, нужного цвета и тп, а скрипт будет туда только вписывать путь.

Конечно вы можете поразбираться в скриптинге - это очень интересно, программирование в целом, так что выбирайте лучший для себя путь.
 
#24
dessiner у тебя аски нету случаем ?) еще кое что спросить хотел если есть постучись 164944
 
#25
вощем у меня юникод типа отображается, если название файла русское, мб нада шрифт сменить а где это делается ? пробывал писать newTextLayer.textItem.font = Arial; не помогло )
 
#26
Все правильно но Arial - это название шрифта, текст, поэтому его нужно заключать в "кавычки". Так как вы сделали получается присвоение значение переменной Arial свойству font объекта textItem.

newTextLayer.textItem.font = "Arial";

ФШ использует post-script name, поэтому если вы хотите сделать Arial Bold, вам нужно узнать пост-скрипт имя этого шрифта, но обычно, если шрифт правильный, оно будет выглядеть так: Arial-Bold. Через черточку без пробелов. Arial-BoldItalic - так наклонный жирный.
 
#27
В общем там нужно декодировать и поэтому пришлось добавить объект File. Вот такой код:

Код:
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.CM;
app.preferences.typeUnits = TypeUnits.POINTS;

var docRef = app.activeDocument;
var s = "FullDocumentPath";
psFile = new File( String ( docRef.fullName ) );

app.displayDialogs = DialogModes.NO;

var textColor = new SolidColor;
textColor.rgb.red = 255;
textColor.rgb.green = 255;
textColor.rgb.blue = 255;

try {
	var newTextLayer = docRef.layers[s];
}
catch (e if e = 1302) {
	var newTextLayer = docRef.artLayers.add();
	newTextLayer.kind = LayerKind.TEXT;
	newTextLayer.textItem.position = Array(0, docRef.height);
	newTextLayer.textItem.size = 10;
	newTextLayer.textItem.color = textColor;
	newTextLayer.textItem.font = "Helios";
	newTextLayer.name = s;
}

newTextLayer.textItem.contents = psFile.fsName;

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;
Как ни странно Arial у меня не прокатил - видимо он считается в другой кодировке, нежели возвращает функция fsName. Можно перекодировать и кодировку - я в этом не разбирался особо, потому что сроду ни одного файла по-русски не назвал, а сейчас времени нет. По крайней мере с моим Helios'ом все работает прекрасно.

Теперь, кстати, и путь будет в зависящем от платформы виде - если у вас Виндовз то значит вида C:\Temp\...
 
#28
Вы можете, кстати, повыкидывать лишнее - все эти строки где app.preferences.rulerUnits - это для публичного использования - для личного это лишнее, потому что какие у вас единицы выбраны, такие вы и используйте в срипте. И обнуление перменных тоже можно выкинуть - скрипт завершится они и обнулятся. Это на случай если скрипт в цикле будет.
 
#29
Да, а насчет Кореле, ну да, там тоже самое можно сделать, но уже сделано: http://www.oberonplace.com/vba/drawmacros/pathlabel/index.htm
 
Сверху