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


iconv

Конвертирование изображений в иконки -ICO.

iconv=%L,%WL||LISTF<>||PS<>||FOLDC<>||FOLDM<>||LISTC<>||FLST<>||cliplist||Path||Format, ||owrite<>, ||pngcmprs<>, ||Dialogs, ||<info>, ||<xinfo>, ||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Список полных путей объектов из буфера обмена.
2-й обязательный параметр.
PathПуть.
Path(!!Flag!!Name.Ext!!Insert). Подпараметры разделяются символами !!
  Может быть от 1-го (обязательного) до 4-х подпараметров.
Path//Flag(//Name.Ext//Insert). Подпараметры разделяются символами // (рекомендуемый).
  Может быть от 2-х (обязательных) до 4-х подпараметров, где:
  Path - путь назначения, где создавать иконки.
  Flag :
    0 - не перезаписывать, если объект существует добавляется счётчик (по умолчанию).
    1 - перезаписывать имеющиеся объекты, если существуют.
    3 - добавление счётчика к целевому пути, если он существует.
    4 - пропустить при совпадении имени объекта.
    9 - проверка создания файла с помощью параметра owrite<>
  Name - имя создаваемого значка.
  Insert - добавление к базовому имени.
Если Path=x, Name=x , то путь/имя берётся из пути оригинального файла.
Может использоваться подпараметр rndm - информация случайных данных см. Дополнение №30
Так же поддерживается конструкция Path//Flag//RegExp//Replace , где:
  Path - путь назначения (если в параметрах необходимо использовать путь объекта, то используйте два двоеточия ::).
  Flag - см. выше.
  RegExp//Replace - строка разделённая символами // означает изменение пути Path (путь назначения) с регулярными выражениями: первая часть "что искать", вторая "чем заменять" см. Дополнение №2.
Если преобразование пути заканчивается обратным слешем, то он является путём назначением, если нет, то файлом.
3-й обязательный параметр.
FormatФормат. В параметре прописывается размер формата иконки или несколько размеров через запятую.
Поддерживаются размеры от 2 до 256 пикселей.
Дополнительные параметры:
owrite<>Режим действий для файлов. Параметр owrite<Number>, где Number:
 Описание
  0 - не перезаписывать существующий файл, добавляется счётчик.
  1 - перезаписывать, если файл существует.
  8 - пропустить при совпадении имени объекта.
  10 - если файл существует - перезаписывать; пропускать, если подобный файл не существует по целевому пути.
  11 - если файл существует - добавлять счётчик; пропускать, если подобный файл не существует по целевому пути.
  12 - если файл существует, то к целевому файлу добавляется счётчик.
  13|Ext - если файл существует, то к целевому файлу добавляется заданное расширение Ext.
  14|Name - если файл существует, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути.
  15|StringName - если файл существует, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.

Режимы 50 - 59 сравнивают файлы по датам.
Numbers - номер или номера через запятую 0, 1, 2
    0 - время последней модификации.
    1 - время создания.
    2 - время последнего доступа.
    Если проверяются несколько дат, то для определения "нового" файла можно в конце указать "-1", будет означает, что если все даты файла новее другого, то он считается "новым" 0,1,2,-1. По умолчанию, если хотя бы одна дата новее, то он считается "новым"

  50|Numbers - если дата исходного файла новее, то целевой файл заменяется. Иначе пропускается.
  51|Numbers - если дата исходного файла старше, то целевой файл заменяется. Иначе пропускается.
  52|Numbers - если дата исходного файла новее, то к создаваемому файлу прибавляется счётчик. Иначе пропускается.
  53|Numbers - если дата исходного файла старше, то к создаваемому файлу прибавляется счётчик. Иначе пропускается.
  54|Numbers - если дата исходного файла новее, то к целевому файлу прибавляется счётчик. Иначе пропускается.
  55|Numbers - если дата исходного файла старше, то к целевому файлу прибавляется счётчик. Иначе пропускается.
  56|Numbers|Ext - если дата исходного файла новее, то к целевому файлу прибавляется заданное расширение. Иначе пропускается.
  57|Numbers|Ext - если дата исходного файла старше, то к целевому файлу прибавляется заданное расширение. Иначе пропускается.
  58|Numbers|Name - если дата исходного файла новее, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути. Иначе пропускается.
  59|Numbers|Name - если дата исходного файла старше, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути. Иначе пропускается.
  60|Numbers|StringName - если дата исходного файла новее, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла. Иначе пропускается.
  61|Numbers|StringName - если дата исходного файла старше, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.. Иначе пропускается.

Режимы 20 и 21 работают не для всех команд, где подключён параметр owrite<>
Режимы работают для команд связанных с текстовыми преобразованиями.
  20|Delimeter - если файл существует, то записывать в конец файла через разделитель Delimeter (необязательный)
  21|Delimeter - если файл существует, то записывать в начало файла через разделитель Delimeter (необязательный)
Далее при существовании файла проверяются контрольные суммы 2-х файлов:

  2|x - если они не совпадают, то к создаваемому файлу прибавляется счётчик.
          если они совпадают, то файл пропускается.

  3|x - если они не совпадают, то к создаваемому файлу прибавляется счётчик.
          если они совпадают, то файл перезаписывается.

  4|x - если они не совпадают, то существующий файл перезаписывается.
          если они совпадают, то файл пропускается.

  5|x - если они не совпадают, то существующий файл перезаписывается.
          если они совпадают, то к создаваемому файлу прибавляется счётчик.

  6|x - если они не совпадают, то файл пропускается.
          если они совпадают, то существующий файл перезаписывается.

  7|x - если они не совпадают, то файл пропускается.
          если они совпадают, то к создаваемому файлу прибавляется счётчик.

  30|x - если они не совпадают, то к целевому файлу прибавляется счётчик.

  31|x|Ext - если они не совпадают, то к целевому файлу прибавляется заданное расширение Ext.
          если они совпадают, то файл пропускается.

  32|x|Name - если они не совпадают, то целевой файл перемещается в заданную/создаваемую папку Name по целевому пути.
          если они совпадают, то файл пропускается.

  33|x|StringName - если они не совпадают, то к имени целевого файла добавляется заданная приставка; тег :N: в StringName заменяется именем файла.
          если они совпадают, то файл пропускается.

  х - метод сравнения:
    1 - подсчёт контрольной суммы MD5
    2 - подсчёт контрольной суммы SHA1
    3 - подсчёт контрольной суммы CRC32
    4 - подсчёт контрольной суммы MD2
    5 - подсчёт контрольной суммы MD4
    6 - подсчёт контрольной суммы SHA256
    7 - подсчёт контрольной суммы SHA384
    8 - подсчёт контрольной суммы SHA512
    9 - подсчёт контрольной суммы MAC
pngcmprs<>PNG сжатие. Параметр pngcmprs<Number> позволяет использовать сжатие PNG для иконок (32 бит на пиксель) для формата 256x256 и выше, где Number:
  0 - не использовать сжатие, сохранение напрямую (по умолчанию).
  1 - использовать сжатие.
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.
<xinfo>Получение различной информации. см. Дополнение №10.
  Аналог параметра <info>, имеет возможность внутри параметра использовать параметр <info>
  Пример: <xinfo=o450<info=f50FilePath//>//>
progres<>Прогресс бар. Параметр progres<> - если указан, то при операции будет запущен прогресс бар.
Учитывается ключ MsBoxAtTheCompletion в TCIMG.ini в секции [Setting].
upd<>Обновление панели.
  Описание
Параметр upd<Number>, где Number - значение обновления панели(ей) Total Commander:
  1 - обновить активную панель.
  2 - обновить обе панели, вернуться в активную.
  3 - обновить другую панель, вернуться в активную.
  4 - обновить активную панель, перейти в другую.
  5 - обновить другую панель, остаться в другой.
  6 - обновить обе панели, остаться в другой.
  7 - не обновлять (по умолчанию, т.е. если параметр не прописан, то панели не обновляются).

Примечания:

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

Имя переменнойОписание
GLOBALICONV0массив входных данных (список исходных путей объектов для конвертирования)
GLOBALICONVмассив выходных данных (список путей созданных иконок и объектов для которых иконки не созданы)
GLOBALICONV1массив успешной конвертации (список путей созданных иконок)
GLOBALICONV2массив неуспешной конвертации (список путей объектов для которых иконки не созданы)

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

См. также:

exicn, exics, icache, icldf, iclds, icodf, icods, icofs, icoft, icomf, icomm, iconf, iconn, icovw, lbicl

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

global iconv=%WL||"%p"//0||48,32,24,16||test<1e!!png> ;; из выделенные изображений конвертировать PNG в иконки (формат 48x48,32x32,24x24,16x16) в активную панель в именные файлы ICO

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

iconv=%WL||"%p"//0||48,32,24,16 ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в активную панель в именные файлы ICO

iconv=%WL||"%t"//0//Name||48,32,24,16||progres<>||upd<3> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель с начальным именем Name.ico с отображением прогресса + обновить другую панель

iconv=%WL||"%t"//0//x//_new||48,32,24,16||progres<>||upd<3> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с добавлением _new к базовому имени, с отображением прогресса + обновить другую панель

iconv=%WL||"%t"//0||256,48,32,24,16 ;; конвертировать выделенные изображения в иконки (формат 256х256,48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO

iconv=%WL||"%t"//0||256,48,32,24,16||pngcmprs<1> ;; конвертировать выделенные изображения в иконки (формат 256х256,48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO, формат сжатого png для 256х256

iconv=%WL||"%t"//0||48,32,24,16 GLOBALICONV0<a> GLOBALICONV<a> GLOBALICONV1<a> GLOBALICONV2<a> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO и передать различные списки

iconv=%WL||"%t"//0||48,32,24,16 ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO

iconv=%WL||"%t"//0||48,32,24,16||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с отображением прогресса

iconv=%WL||"%t"//0||48,32,24,16||progres<>||upd<3> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с отображением прогресса + обновить другую панель

iconv=%WL||"%t"//1||48,32,24,16 ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO (заменять при совпадении имён)

iconv=%WL||"%t"//9||48,32,24,16||owrite<2|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то прибавить счётчик, если совпадают, то не создавать

iconv=%WL||"%t"//9||48,32,24,16||owrite<3|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то прибавить счётчик, если совпадают, то перезаписать

iconv=%WL||"%t"//9||48,32,24,16||owrite<4|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то перезаписать, если совпадают, то пропустить

iconv=%WL||"%t"//9||48,32,24,16||owrite<5|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то перезаписать, если совпадают, то прибавить счётчик

iconv=%WL||"%t"//9||48,32,24,16||owrite<6|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то пропустить, если совпадают, то перезаписать

iconv=%WL||"%t"//9||48,32,24,16||owrite<7|1>||upd<3>||progres<> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные файлы ICO с условиями при его существовании: если контрольные суммы не совпадают, то пропустить, если совпадают, то прибавить счётчик

iconv=%WL||"%t":://0//(.*)(\w:.*\\)([^\\]*)\.(.*)//$1$3\\||48,32,24,16||progres<>||upd<3> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в другую панель в именные папки и файлы ICO, с отображением прогресса + обновить другую

iconv=%WL||x//0//x//_new||48,32,24,16||progres<>||upd<1> ;; конвертировать выделенные изображения в иконки (формат 48x48,32x32,24x24,16x16) в папку изображений в именные файлы ICO с добавлением _new к базовому имени, с отображением прогресса + обновить другую панель

imgpr=1 global copyy=%P%N||"%p"//0||bkt<!!(!!)!!1> iconv=FOLDC<GLOBALCOPYY<1>//0//1//png>||GLOBALCOPYY<1>//0||48,32,24,16 delss=FOLDC<GLOBALCOPYY<1>//0//1//png>||1 ;; создать копию папки под курсором и конвертировать png файлы папки копии в иконки с последующим удалением всех png файлов

imgpr=1 global copyy=%P%N||"%p"//0||bkt<!!(!!)!!1> iconv=FOLDC<GLOBALCOPYY<1>//0//1//png>||GLOBALCOPYY<1>||48,32,24,16 delss=FOLDC<GLOBALCOPYY<1>//0//1//png>||1 creat=%%TCIMG_PATH%%\TEMP\||ikon.txt||content<$GLOBALICONV>||owrite<1> lbicl=%%TCIMG_PATH%%\TEMP\ikon.txt||"%p"Library.icl ;; создать копию папки под курсором и конвертировать png файлы папки копии в иконки заданных размеров с последующим удалением всех png файлов и с созданием в активной панели библиотеки.icl созданных иконок

imgpr=1 slist=FOLDC<%WL//0//1//png> iconv=GLOBALSLIST<t>||"%p"\NewLibrary//0||48,32,24,16 creat=%%TCIMG_PATH%%\TEMP\||NewLibrary.txt||content<$GLOBALICONV||owrite<1> lbicl=%%TCIMG_PATH%%\TEMP\NewLibrary.txt||"%p"Library.icl delsm="%p"\NewLibrary||1 ;; конвертировать png файлы выделенных папок в иконки заданных размеров с размещением их в папке NewLibrary, далее создать в активной панели библиотеку Library.icl из содержимого папки NewLibrary - с дальнейшим удалением данной папки

imgpr=1 slist=FOLDC<%WL//0//1//png> iconv=GLOBALSLIST<t>||"%p"\NewLibrary//0||48,32,24,16 creat=%%TCIMG_PATH%%\TEMP\||NewLibrary.txt||content<$GLOBALICONV>||owrite<1> lbicl=%%TCIMG_PATH%%\TEMP\NewLibrary.txt||"%p"Library.icl ;; конвертировать png файлы выделенных папок в иконки заданных размеров с размещением их в папке NewLibrary, после создать в активной панели библиотеку Library.icl из содержимого папки NewLibrary

imgpr=1 slist=FOLDC<%WL//0//1//png> xlist=GLOBALSLIST<t1>||##<info=f12::>||&&(?i)[^a-zа-яё]*$!! iconv=GLOBALSLIST<t>||"%p"\NewLibrary\//0//GLOBALXLIST<1>||48,32,24,16 creat=%%TCIMG_PATH%%\TEMP\||NewLibrary.txt||content<$GLOBALICONV>||owrite<1> lbicl=%%TCIMG_PATH%%\TEMP\NewLibrary.txt||"%p"Library.icl ;; конвертировать png файлы выделенных папок в иконки заданных размеров с именем первого файла с размещением их в папке NewLibrary, далее создать в активной панели библиотеку Library.icl из содержимого папки NewLibrary

itray=3 sends=-1??-1||formt<lin44,lin37,1> downl="%p"//1||$GLOBALSENDS||pause<1-2>||progres<>||convert<#Slin40> renms=$GLOBALDOWNL||**!! renms=$GLOBALRENMS||extplus<> iconv=$GLOBALRENMS||"%p//1"||48,32,24,16||upd<1> ;; скачать из списка ссылок в буфере все иконки favicon.ico в активную панель, с конвертацией в размер 48,32,24,16 с сохранением имени из URL и удалением скачанных файлов

itray=3 sends=-1??-1||formt<lin44,lin60,lin61,lin62,lin37,1> slist=$GLOBALSENDS||formt<lin58,lin57> downl="%p"//1||$GLOBALSENDS||pause<1-2>||progres<>||convert<#Hmd5> renms=$GLOBALDOWNL||extplus<> pause=500 iconv=$GLOBALRENMS||"%p//1"||32 renms=$GLOBALICONV||list<$GLOBALSLIST>||rflag<1> delss=$GLOBALDOWNL||1||upd<1> ;; загрузка всех иконок из списка URL в буфере с конвертацией в размер 32х32 в активную панель и преобразованием имени в адрес ссылки

itray=3 sends=-1??-1||formt<lin44,lin60,lin61,lin62,lin37,1> wlist=$GLOBALSENDS||formt<lin59,lin57> slist=$GLOBALSENDS||formt<lin58,lin57> downl="%p"//1||$GLOBALSENDS||pause<1-2>||progres<>||convert<#Hmd5> pause=500 renms=$GLOBALDOWNL||extplus<> lists=$GLOBALRENMS iconv=$GLOBALRENMS||"%p":://1//(.*)(\w:.*\\)([^\\]*)\.(.*)//$1$3||32 xlist=$GLOBALICONV||##<info=o76:://> renms=$GLOBALICONV||list<$GLOBALSLIST>||rflag<1> pause=500 renms=$GLOBALXLIST||list<$GLOBALWLIST> delss=$GLOBALLISTS||1 slist=FOLDC<$GLOBALRENMS//1//0//*.ico//0>||##<info=o75:://> pause=500 icofs=$GLOBALSLIST||0||ico,0,1 attrb=FOLDC<$GLOBALSLIST//1//0//*.ico//0>||+HS!!0||upd<1> ;; создание каталогов и назначение им иконок из списка ссылок в буфере

itray=3 sends=-1??-1||formt<lin44,lin60,lin61,lin62,lin37,1> wlist=$GLOBALSENDS||formt<lin59,lin57> slist=$GLOBALSENDS||formt<lin58,lin57> downl="%p"//1||$GLOBALSENDS||pause<1-2>||progres<>||convert<#Hmd5> pause=500 renms=$GLOBALDOWNL||extplus<> lists=$GLOBALRENMS iconv=$GLOBALRENMS||"%p":://1//(.*)(\w:.*\\)([^\\]*)\.(.*)//$1$3||32 xlist=$GLOBALICONV||##<info=o76:://> renms=$GLOBALICONV||list<GLOBALSLIST<t>>||rflag<1> pause=500 renms=$GLOBALXLIST||list<GLOBALWLIST<t>> delss=$GLOBALLISTS||1 slist=FOLDC<GLOBALRENMS<t>//1//0//*.ico//0>||##<info=o75::> pause=500 icofs=GLOBALSLIST<t>||0||ico,0,1 attrb=FOLDC<GLOBALSLIST<t>//1//0//*.ico//0>||+HS!!0||upd<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