Описание команды


picss

Замена цвета в изображениях.

picss=%L, %WL||LISTF<>||PS<>||FOLDC<>||FOLDM<>||LISTC<>||FLST<>||cliplist||$var_aa||$GLOBALNAME||Path||Color1!!Color2, ||perimeter<>, ||Dialogs, ||<info>, ||progres<>, ||upd<>

Параметры:

1-й обязательный параметр. Может иметь несколько вариантов:
%L,
%WL
Список выделенных изображений.
Поддерживаются форматы: (BMP, GIF, PNG, JPG, JPEG, JPE, TIF, TIFF, DIB, RLE).
Также может использоваться путь к файлу списка полных путей изображений %P%N. см. Дополнение №7 или с:\List.txt
LISTF<>Список заданных объектов. см. Дополнение №22.
PS<>Список объектов каталога. см. Дополнение №22.
FOLDC<>Список объектов содержимого каталогов. см. Дополнение №22.
FOLDM<>Список выделенных объектов и всех объектов в подпапках. см. Дополнение №22.
LISTC<>Список объектов из выделенных без дубликатов. см. Дополнение №22.
FLST<>Смешанные списки объектов по заданному списку. см. Дополнение №22.
cliplistСписок полных путей объектов из буфера обмена.
$var_aaМассив. Переменная $var_a... - массив путей, созданный в команде exect
$GLOBALNAMEМассив. Список путей глобальной переменной см. Дополнение №23.
2-й обязательный параметр.
PathПуть.
Path(!!Flag!!Name.Ext!!Insert). Подпараметры разделяются символами !!
  Может быть от 1-го (обязательного) до 4-х подпараметров
Path//Flag(//Name.Ext//Insert). Подпараметры разделяются символами // (рекомендуемый)
  Может быть от 2-х (обязательных) до 4-х подпараметров, где:
  Path - путь назначения, где создавать изображения.
  Flag :
    0 - не перезаписывать, если объект существует добавляется счётчик (по умолчанию)
    1 - перезаписывать имеющиеся объекты, если существуют.
    3 - добавление счётчика к целевому пути, если он существует.
    4 - пропустить при совпадении имени объекта.
  Name - имя создаваемого изображения.
  Insert - добавление к базовому имени.
Если Path=x, Name=x , то путь/имя берётся из пути оригинального файла.

Так же поддерживается конструкция Path//Flag//RegExp//Replace , где:
  Path - путь назначения (если в параметрах необходимо использовать путь объекта, то используйте два двоеточия ::).
  Flag - см. выше
  RegExp//Replace - строка разделённая символами // означает изменение пути Path (путь назначения) с регулярными выражениями: первая часть "что искать", вторая "чем заменять" см. Дополнение №2.
Если преобразование пути заканчивается обратным слешем, то он является путём назначением, если нет, то файлом.
3-й обязательный параметр.
Color1!!Color2Замена цвета во всем изображении. Color1!!Color2 , где:
  Color1 - цвет, который заменяется, возможны варианты:
    • X:Y - цвет берётся из пикселя изображения, относительно заданных координат:
      - отсчёт ведётся с 0 от верхнего левого угла.
      - могут быть использованы символы W - ширина изображения и H - высота изображения.
      - могут быть использованы математические действия (W-1 , W/2 ,... ).
    • ARGB или RGB цвет (FFFF0000, FF0000)
    • несколько ARGB или RGB цветов прописанных через разделитель | (FFFFFF|FFFFFD|FEF9F5|FCFFFF)
    • @Key - имя ключа из TCIMG.ini из секции [FlowerPatterns], в котором прописаны цвета.
    • + - случайный RGB цвет.
    • $ - случайный ARGB цвет.
  Color2 - цвет, которым заменяется, возможны варианты:
    • ARGB или RGB цвет.
    • # - прозрачный цвет.
    • + - случайный RGB цвет.
    • $ - случайный ARGB цвет.
Параметр может быть использован несколько раз через разделитель ||
...||Color1!!Color2||Color1!!Color2||Color1!!Color2 ...
При использовании perimeter<> параметр используется 1 раз.
Дополнительные параметры:
perimeter<>Замена цвета по периметру. Параметр perimeter<Number> позволяет искать и заменять заданный цвет по периметру, где Number:
  0 - во всем изображении (по умолчанию)
  1 - по периметру.
  2 - заливка заданного цвета в заданной точке (не по периметру).
Параметр рассчитан на обработку небольших изображений, т.к. проверяется каждый последовательный пиксель по периметру с заданным цветом Color1.
Чем больше изображение, тем длительнее процесс поиска, возможно в будущем найдётся более быстрый метод обработки.
DialogsДиалоги. см. Дополнение №18
  Описание
Различные параметры диалогов.
  [input] - диалог ввода информации в InputBox.
  [richinput] - диалог ввода информации в RichInputBox.
  [combo] - диалог выбора информации в ComboBox.
  [group] - диалог выбора информации в GroupBox.
  [check] - диалог выбора информации в CheckBox.
  [edits] - диалог выбора информации в EditBox.
  [sfold] - выбор каталога.
  [zfold] - выбор каталогов.
  [sopen] - выбор файла для открытия.
  [ssave] - выбор файла для сохранения.
  [sicon] - диалог просмотра и выбора значка.
  [msgbx] - окно сообщения MsgBox.
  [updwn] - диалог выбора числовой информации UpDown.
  [image] - диалог выбора изображения.
  [elect] - диалог выбора файлов и папок.
...и другие диалоги.
<info>Получение различной информации. см. Дополнение №10.
progres<>Прогресс бар. Параметр progres<> - если указан, то при операции будет вызван прогресс бар.
Учитывается ключ MsBoxAtTheCompletion в TCIMG.ini в секции [Setting].
upd<>Обновление панели.
  Описание
Параметр upd<Number>, где Number - значение обновления панели(ей) Total Commander:
  1 - обновить активную панель.
  2 - обновить обе панели, вернуться в активную.
  3 - обновить другую панель, вернуться в активную.
  4 - обновить активную панель, перейти в другую.
  5 - обновить другую панель, остаться в другой.
  6 - обновить обе панели, остаться в другой.
  7 - не обновлять.

Примечания:

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALPICSS0массив входных данных (список исходных путей объектов для замены цветов)
GLOBALPICSSмассив выходных данных (список путей созданных изображений)
GLOBALPICSS1массив успешных замен (список путей изображений, которые участвовали в преобразовании)
GLOBALPICSS2массив неуспешных замен (список путей объектов, которые не участвовали в преобразовании)

Аналог команды для одного объекта picsf

См. также:

gifnn, gifcs, gifcn, clipi, exiff, exifs, iclip, imgcf, imgcg, imgcn, imgcr, imgff, imgfs, imggo, imght, imgjf, imgjs, imgnz, imgth, imgtx, imgtz, imgup, imgvw, imgwh, picsf, prevw, scren, sdesk, sdess, symxx

Примеры:
 Как создать кнопку?

global icomm=%WL||"%t"//0||png||foldformat<Name>||progres<> picss=$GLOBALICOMM||:://1||0:0!!#||perimeter<1>||progres<>||upd<3> ;; извлечь из выделенных ico файлов изображения всех форматов, создав в другой панели именные png файлы в папках форматов с начальной приставкой Name, заменить весь найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет + отображать процесс

global imgcn=%WL||"%t"//0//x//**png||&#105mgcnv<>||resize<5,96,96>||progres<> picss=$GLOBALIMGCN||:://1||0:0!!#||perimeter<1>||progres<>||upd<3> ;; изменить размеры выделенных изображений на 96х96 и преобразовать в png + заменить весь найденный цвет 1-го пикселя левого верхнего угла на прозрачный цвет по периметру и сохранить в другой панели

global imgcn=%WL||"%t"//0//x//**png||&#105mgcnv<>||resize<5,96,96>||progres<> picss=$GLOBALIMGCN||:://1||0:0!!#||progres<>||upd<3> ;; изменить размеры выделенных изображений на 96х96 и преобразовать в png + заменить весь найденный цвет 1-го пикселя левого верхнего угла на прозрачный цвет и сохранить в другой панели

global imgcn=%WL||"%t"//0//x//**png||&#105mgcnv<>||resize<5,96,96>||progres<> picss=$GLOBALIMGCN||:://1||10:10!!#||perimeter<2>||progres<>||upd<3> ;; изменить размеры выделенных изображений на 96х96 и преобразовать в png + залить прозрачным фоном цвет пикселя 10x10 и сохранить в другой панели

global picss=%WL||"%t"//0||0:0!!#||perimeter<1>||progres<>||upd<3> picss=$GLOBALPICSS||:://1||W/2:H/2!!#||perimeter<2>||progres<>||upd<3> ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет + залить цвет в центре прозрачным цветом и сохранить в другой панели

global picss=%WL||"%t"//0||0:0!!#||progres<> GLOBALPICSS0<a> GLOBALPICSS<a> GLOBALPICSS1<a> GLOBALPICSS2<a> ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого верхнего угла на прозрачный цвет и сохранить в другой панели + вывести итоговые данные

global slist=%WL shape=1 zends=[combo=BOX_U76.1] mends=[combo=BOX_U76.2] sends=[check=BOX_U6] xends=GLOBALCHECK1<k|0|¤>||¤!!, folds="%t"||[info=s30] picss=$GLOBALSLIST||GLOBALFOLDS<1>//0||GLOBALZENDS<1>!!GLOBALMENDS<1>||progres<> iconv=PS<GLOBALFOLDS<1>//1//0>||GLOBALFOLDS<1>||GLOBALXENDS<1> ;; сменить цвет выделенным изображения (заменяемый и заменяющий цвета вводятся в ДО), сохранить изображения с измененными цветами в другой панели в папке с текущей датой, в этой же папке создать из полученных изображений иконки 16х16 и 32х32

picss=%WL||"%t"//0||#!!FF0000 ;; в выделенных изображениях заменить прозрачный на красный цвет и сохранить в другой панели

picss=%WL||"%t"//0||?FF[\dA-F]{2}00!!#||progres<>||upd<3> ;; в выделенных изображениях заменить все заданные цвета на прозрачный и сохранить в другой панели

picss=%WL||"%t"//0||?FF[\dA-F]{2}00!!#||replacen<1>||progres<>||upd<3> ;; в выделенных изображениях заменить все заданные цвета на прозрачный и сохранить в другой панели (если заданные цвета не найдены, то файл не создаётся)

picss=%WL||"%t"//0||?FFF[A-F1-9]F[A-F1-9]F[A-F1-9]!!000000||progres<>||upd<3> ;; в выделенных изображениях заменить все заданные цвета (оттенки белого) на чёрный и сохранить в другой панели

picss=%WL||"%t"//0||@WhitePlus!!#||progres<> ;; в выделенных изображениях заменить все найденные цвета, прописанные в TCIMG.ini в секции [FlowerPatterns] в ключе WhitePlus на прозрачный и сохранить в другой панели

picss=%WL||"%t"//0||@WhitePlus!!$||upd<3>||progres<> ;; в выделенных изображениях заменить все найденные цвета, прописанные в TCIMG.ini в секции [FlowerPatterns] в ключе WhitePlus на случайный ARGB и сохранить в другой панели

picss=%WL||"%t"//0||@WhitePlus!!+||upd<3>||progres<> ;; в выделенных изображениях заменить все найденные цвета, прописанные в TCIMG.ini в секции [FlowerPatterns] в ключе WhitePlus на случайный RGB и сохранить в другой панели

picss=%WL||"%t"//0||0:0!!# ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого верхнего угла на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||0:0!!#||perimeter<1>||progres<> ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||0:0!!#||perimeter<1>||progres<>||upd<3> ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||0:H-1!!# ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя левого нижнего угла на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||FF0000!!0000FF||FFFFFF!!000000||progres<>||upd<3> ;; в выделенных изображениях заменить красный на синий, белый на чёрный и сохранить в другой панели

picss=%WL||"%t"//0||FF0000|0000FF!!# ;; в выделенных изображениях заменить весь найденный красный и синий цвет на прозрачный и сохранить в другой панели

picss=%WL||"%t"//0||W/2:H/2!!# ;; в выделенных изображениях заменить весь найденный цвет пикселя "средины" на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||W/2:H/2!!#||perimeter<2>||progres<>||upd<3> ;; в выделенных изображениях залить цвет в центре прозрачным цветом и сохранить в другой панели

picss=%WL||"%t"//0||W-1:0!!# ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя правого верхнего угла на прозрачный цвет и сохранить в другой панели

picss=%WL||"%t"//0||W-1:H-1!!# ;; в выделенных изображениях заменить весь найденный цвет 1-го пикселя правого нижнего угла на прозрачный цвет и сохранить в другой панели

slist=%WL folds="%t"||[info=s30] shape=U10 picss=$GLOBALSLIST||GLOBALFOLDS<1>//0||@Black0!![combo=BOX_U78]||progres<> sends=[check=BOX_U6] xends=GLOBALCHECK1<k|0|¤>||¤!!, iconv=PS<GLOBALFOLDS<1>//1//0>||GLOBALFOLDS<1>||GLOBALXENDS<1> delss=PS<GLOBALFOLDS<1>//1//0//*.png>||1 ;; создать из выделенных изображений иконки в другой панели в папке с текущей датой (предварительно в диалоговом окне выбираем цвет на который надо заменить цвета с черным оттенком в выделенных изображениях и размеры иконок)


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru