Я запускаю приведенный ниже скрипт, чтобы проверить яркость пикселя на основе выбранного Color Sampler. А затем автоматически регулируйте экспозицию, пока яркость нужного пикселя не достигнет 235~.
//Get color sampler values
var colorSampler = app.activeDocument.colorSamplers[0];
//RGB values
var Red = colorSampler.color.rgb.red
var Green = colorSampler.color.rgb.green
var Blue = colorSampler.color.rgb.blue
var RGB = [ Red, Green, Blue ];
//Get Luminosity
var averageLuminosity = [(Red + Green + Blue)/3 ];
LumaCheck();
function LumaCheck () {
if (averageLuminosity < 215) {
Luma20();
} else if (averageLuminosity < 225) {
Luma10();
} else if (averageLuminosity < 230) {
Luma5();
} else if (averageLuminosity < 233) {
Luma1();
} else if (averageLuminosity < 235) {
Luma1();
Luma1();
} else (averageLuminosity >= 235) {
//do nothing
}
}
Он отлично работает с белым цветом, хотя и борется с цветными пикселями: где значения RGB для пикселя сильно различаются. Как только он достигает 235, любого из Красных/Зеленых или Синих каналов - он останавливается.
Как бы вы продолжали создавать цикл, пока все значения RGB не достигнут значения «больше или равно 235»?
Я попытался сделать простой цикл, но он вообще не останавливается. Если бы кто-нибудь мог указать мне правильное направление, это было бы очень признательно!
while (averageLuminosity < 235) {
Luma1();
if (averageLuminosity >= 235)
break;
}