[PS CS4-CS6] Скрипт открывающий картинку в определенном профиле

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 972
Реакции
3 481

Nata-S

Участник
Топикстартер
Сообщения
9
Реакции
0
Порядок работы скрипта:
1. запрос на папку из которой берутся все jpg
2. запрос на папку куда будут сохраняться обработанные файлы
3. берется из папки jpg проверяется на наличие встроенного профиля
4. если есть встроенный профиль файл открывается со свойствами встроенного профиля, в противном случае проверяется цветовое пространство в случае если CMYK файл открывается со свойствами одного профиля, в случае RGB со свойствами другого профиля, в случае с GREY со свойствами третьего профиля.
5. проверяется цветовой профиль и в зависимости от значения работает resizeImage и конвертация в определенный профиль с заменой цветового пространства (в случае с RGB)
6. файл сохраняется в формате tif с присвоенным (встроенным) новым профилем в указанную папку в пункте 2.

Ошибка происходит, когда перед запуском скрипта выполнены действия:
1. вручную открывается любой jpg без встроенного профиля допустим CMYK
2. в появившемся окне "Missing Profile" выбрать пункт Assign profile и указать любой профиль отличный от тех, что указаны в скрипте. Нажать ОК
3. закрыть файл без сохранения

Порядок работы скрипта, когда выполнены действия после которых происходит ошибка:
1. - 3. проходят в штатном порядке
4. если профиль встроен - файл открывается со свойствами встроенного профиля, если встроенного профиля нет, то RGB открывается со свойствами профиля указанного в скрипте, CMYK открывается со свойствами профиля указанного в окне "Missing Profile" в пункте Assign profile, GREY открывается со свойствами профиля указанного в скрипте.
5. - 6. проходят в штатном порядке
 

Nata-S

Участник
Топикстартер
Сообщения
9
Реакции
0
Где именно в данном скрипте вы указываете профиль для открытия изображения?
Код:
else {
            if (doc.mode.toString() == DocumentMode.CMYK) {
                doc.colorProfileName = "ISO Coated v2 (ECI)";
                              }   
            if (doc.mode.toString() == DocumentMode.RGB) {
                doc.colorProfileName = "ARRI WCG Preview LUT for P3";
                               }
            if (doc.mode.toString() == DocumentMode.GRAYSCALE) {
                doc.colorProfileName ="Dot Gain 20%";
                            }
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
в противном случае проверяется цветовое пространство в случае если CMYK файл открывается со свойствами одного профиля, в случае RGB со свойствами другого профиля, в случае с GREY со свойствами третьего профиля.
Вот этот момент поясните пожалуйста. "одного-второго-третьего" это все где?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
Код:
else {
            if (doc.mode.toString() == DocumentMode.CMYK) {
                doc.colorProfileName = "ISO Coated v2 (ECI)";
                              }  
            if (doc.mode.toString() == DocumentMode.RGB) {
                doc.colorProfileName = "ARRI WCG Preview LUT for P3";
                               }
            if (doc.mode.toString() == DocumentMode.GRAYSCALE) {
                doc.colorProfileName ="Dot Gain 20%";
                            }
Нет
Документ уже открыт
 

Nata-S

Участник
Топикстартер
Сообщения
9
Реакции
0
Я поясню, кроме jpg этот скрипт в дальнейшем должен будет ещё обрабатывать tif, psd и png по тому же пути что и jpg, только png будет обрабатываться по другому. В одной папке может находиться более 300 картинок разного формата и свойств, а в итоге должно получиться только tif и psd, все 300dpi без изменения размера и потери качества со одним из двух встроенных профилей. В выложенном скрипте сознательно были взяты стандартные профили, т. к. у нас используются свои, и ни у кого тогда скрипт не заработает.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
И никак
В выложенном скрипте сознательно были взяты стандартные профили, т. к. у нас используются свои, и ни у кого тогда скрипт не заработает.
Вы вероятно не поняли что мы пытаемся вам донести.
Когда фотошоп открывает изображение он должен какой то профиль использовать (или не использовать) при загрузке изображения. В методе open насколько я понимаю, указать это в явном виде нельзя. Шах и мат
 
  • Спасибо
Реакции: Nata-S

Nata-S

Участник
Топикстартер
Сообщения
9
Реакции
0
И никак

Вы вероятно не поняли что мы пытаемся вам донести.
Когда фотошоп открывает изображение он должен какой то профиль использовать (или не использовать) при загрузке изображения. В методе open насколько я понимаю, указать это в явном виде нельзя. Шах и мат
Большое спасибо! Теперь я знаю в каком месте копать!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
Будет присвоен умолчательный.
Это я и имел в виду.
Выход из данного затруднения - 1) нетрадиционноректальный. перед каждым открытием файла без профиля (что еще определить надо) открывать скриптом файл с нужным профилем и закрывать 2) прямой - использовать вместо неуклюжего тормозного фотошопа специально обученные быстрые инструменты
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 972
Реакции
3 481

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
Я имею ввиду в скрипте
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 245
Реакции
10 852
Достаточно указать нужные профили в дефолтных настройках фотошопа.
Ты уверен, что поможет?
Топикстартер говорит что они перебиваются при открытии файлов
Ошибка происходит, когда перед запуском скрипта выполнены действия:
1. вручную открывается любой jpg без встроенного профиля допустим CMYK
2. в появившемся окне "Missing Profile" выбрать пункт Assign profile и указать любой профиль отличный от тех, что указаны в скрипте. Нажать ОК
3. закрыть файл без сохранения
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 972
Реакции
3 481