2016-02-05 9 views
0

Итак, моя конечная цель состоит в том, чтобы создать четыре круглых выделения по углам, но после просмотра документации и поиска много раз я не мог найти информацию ни о чем кроме прямоугольных областей выделения. Я верю, что должен быть быть решением, но я не могу думать ни о чем, что не связано с установкой огромного массива граничных пикселей для круга (что я даже не уверен, что это сработает, m довольно новый для Photoshop сценариев и как он работает).Как создать круговой или эллиптический выбор в Javascript для использования в Photoshop?

Большое спасибо!

ответ

0

API-интерфейс сценариев Photoshop не завершен, и иногда вы застреваете, пытаясь выполнить определенные задачи. Отличным инструментом для обработки этого является собственный скрипт ScriptListener Adobe. Это займет немного времени, чтобы выяснить код, который он выплевывает, но это поможет заполнить отверстия вашими сценариями. Ниже приводится функцией я использую для создания кругового выбора:

function makeCircle(left,top,right,bottom,antiAlias){ 
 

 
var circleSelection = charIDToTypeID("setd"); 
 
    var descriptor = new ActionDescriptor(); 
 
    var id71 = charIDToTypeID("null"); 
 
     var ref5 = new ActionReference(); 
 
     var id72 = charIDToTypeID("Chnl"); 
 
     var id73 = charIDToTypeID("fsel"); 
 
     ref5.putProperty(id72, id73); 
 
    descriptor.putReference(id71, ref5); 
 
    var id74 = charIDToTypeID("T "); 
 
     var desc12 = new ActionDescriptor(); 
 

 
     var top1 = charIDToTypeID("Top "); 
 
     var top2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(top1, top2, top); 
 

 
     var left1 = charIDToTypeID("Left"); 
 
     var left2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(left1, left2, left); 
 

 
     var bottom1 = charIDToTypeID("Btom"); 
 
     var bottom2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(bottom1, bottom2, bottom); 
 

 
     var right1 = charIDToTypeID("Rght"); 
 
     var right2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(right1, right2, right); 
 

 
    var id83 = charIDToTypeID("Elps"); 
 
    descriptor.putObject(id74, id83, desc12); 
 
    var id84 = charIDToTypeID("AntA"); 
 
    descriptor.putBoolean(id84, antiAlias); 
 
executeAction(circleSelection, descriptor, DialogModes.NO); 
 
}

+0

Это именно то, что я искал. Спасибо огромное! Мне придется несколько раз запускать его и настраивать, чтобы я мог его полностью понять. –