Andrey_A_A
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Aleks431 22:08 12-01-2016 Цитата: А можно на основе iconf=%P%N||"%p"||48,32,24,16||upd<1> (конвертировать изображение под курсором в именную иконку (формат 48x48,32x32,24x24,16x16)) создать иконку, и чтобы фон (окружение вокруг центрального предмета) был прозрачным? Алгоритм выбора какой цвет будет прозрачным - на Ваше усмотрение - через дополнительный запрос-окно (как в IrfanView) или по определенной координате, например, верхний левый угол, точка 2х2. Подготовка изображения заливкой лишнего одним ненужным цветом - не вопрос. Можно конечно Ваш результат того варианта доработать в Icon Workshop... Но если не трудно... Пожалуйста. Спасибо. P.S. Возможно этот алгоритм можно будет использовать для создания и PNG на прозрачном фоне. Я понимаю, что это намного проще для изображений BMP. У JPG "фон" не однородный и там при превращении в прозрачное надо брать какой-то разброс уничтожаемого цвета. | Aleks431, вроде что-то получилось... Тестовая версия TCIMG 134_b2, в версии TCIMG 13.3 замените соответствующие файл(ы) Добавлены новые команды picsf и picss , позволяющие это сделать, примеры в описании... Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe global imgpr=1 picsf=%P%N||%%TCIMG_TEMP%%||0:0!!#||perimeter<1> iconf=GLOBALPICSF<1>||"%p"||48,32,24,16||upd<1> tempxx %COMMANDER_PATH%\Wcmicons.dll,1 Конвертировать изображение под курсором в именную иконку (формат 48x48,32x32,24x24,16x16) в активную панель, предварительно заменить найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет 0 -1 | Если вы делаете значок из большого изображения, то чем оно больше, тем дольше идёт обработка параметра perimeter<> Чтобы сократить время можно сначала изменить изображение до 48 пикслей, а уж потом делать прогон по перимеру, ну а качество, сами смотрите какое понравится: Код: TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe global imgpr=1 imgcf=%P%N||%%TCIMG_TEMP%%||resize<6,48> picsf=GLOBALIMGCF1<1>||%%TCIMG_TEMP%%||0:0!!#||perimeter<1> iconf=GLOBALPICSF<1>||"%p"||48,32,24,16||upd<1> tempxx %COMMANDER_PATH%\Wcmicons.dll,1 Конвертировать изображение под курсором в именную иконку (формат 48x48,32x32,24x24,16x16) в активную панель, предварительно изменить размер до 48 пикселей и заменить найденный цвет 1-го пикселя левого верхнего угла по периметру на прозрачный цвет 0 -1 | Цитата: у меня наоборот, практически все иконки не 32-битные, для экономии места и скорости отображения. | Aleks431, добавил в команду icomm частичное извлечение из 16 битных значков... Почему частичное, есть пару условий: - если в ICO есть 32 битные и 16 битные, то извлекаются только 32 битные - если в ICO есть только 16 битные (или 256, или mono), то извлекаются только форматы 32х32 и 16х16 (Возможно в будущем найдётся метод получение всего и сразу, но пока так) |