Жёлтые папки и одинаковые ярлыки со временем сливаются в монотонный фон, и глаз перестаёт за ними цепляться. Собственная картинка на значке меняет дело за пару минут: нужный каталог видно издалека, рабочий стол оживает и подсказывает, где что лежит. Правда, у наведения красоты есть коварный противник – кэш значков, который порой неделями показывает старые рисунки вместо новых. С ним тоже разберёмся, а начнём с устройства самого файла.
Формат ico и несколько размеров внутри одного файла
Файл ico устроен как матрёшка. Снаружи лежит маленький каталог с перечнем содержимого, а следом – набор готовых картинок разных размеров и глубины цвета. Система в каждом месте интерфейса запрашивает свой размер, и проводник выбирает из набора ближайший: для мелких списков 16 пикселей, для огромных значков 256. Если подходящей картинки в файле нет, программа берёт большую или меньшую и растягивает её как получится, отчего рисунок расплывается.
Набор размеров для файловых и программных значков включает 16, 32, 48 и 256 пикселей, причём код умеет масштабировать картинку между 32 и 256 сам. Классический режим добавляет к ряду ступени 24 и 64 пикселя. Масштабирование экрана вносит свою правку: при 100% система запрашивает картинку 16 пикселей, при 125% – 20, при 150% – 24, при 200% – 32. Отсюда практический вывод: щедрый файл держит весь ряд от 16 до 256 пикселей, тогда значок выглядит чётко на любом мониторе и в любом списке.
Тем же способом картинки хранятся и внутри программ: exe и dll несут собственный каталог значков, и окно выбора читает его без всяких конвертеров. При равных размерах система предпочитает картинку с большей глубиной цвета, а все современные форматы от 8 бит и выше считает равнозначными, так что дубли одного размера разной глубины в файле бесполезны.
Вершина набора – картинка 256 пикселей, и хранится она внутри ico в сжатии png, что заметно уменьшает файл. Прозрачные края задаёт альфа-канал, поэтому рисунок ложится на любой фон гладко, без белой рамки. Один-единственный рисунок в файле – верный путь к мыльным мелким значкам, об этом стоит помнить заранее.
Готовые значки системы в imageres.dll и shell32.dll
Ради пары красивых папок не обязательно что-то рисовать: в системе уже лежат сотни готовых рисунков. Самая современная коллекция хранится в файле C:\Windows\System32\imageres.dll – её можно листать долго, там найдутся папки, диски, устройства, стрелки и предупреждения. Рядом доживает классика в shell32.dll, набор, который тянется через десятки версий Windows. Устройствам посвящён ddores.dll, в moricons.dll сохранились значки времён MS-DOS: маленькая археология прямо на системном диске. Сетевые изображения прячутся в netshell.dll, а нарочито старые – в pifmgr.dll, наследнице времён Windows 95.
Добраться до коллекций просто. В окне выбора значка нажмите кнопку Обзор…, впишите путь к библиотеке и подтвердите. Список под окошком предпросмотра показывает все картинки файла, выбранная тут же отражается крупно. Годятся и программы: значок можно одолжить у любого exe, например у старой игры или любимой утилиты, – рисунок останется жить в чужом файле, но станет вашим.
Смена значка через свойства папки и ярлыка
С папкой маршрут такой: правая кнопка по объекту → Свойства → вкладка Настройка → кнопка Сменить значок…. Откроется галерея из imageres.dll, но кнопкой Обзор… можно указать и собственный файл. Выберите рисунок, нажмите ОК, затем Применить – картинка обновится на месте. Передумать легко: кнопка Восстановить значения по умолчанию на той же вкладке вернёт жёлтую классику.
У ярлыка схема почти та же, меняется только вкладка: правая кнопка по ярлыку → Свойства → вкладка Ярлык → кнопка Сменить значок…. Дальше знакомое окно, выбор файла, ОК и Применить. Так же украшаются ярлыки программ, игр и скриптов, лежащие на рабочем столе и в панели быстрого доступа. Папки обновляют рисунок мгновенно, ярлыки иногда запаздывают: если новая картинка не появилась сразу, не спешите переделывать файл – причина прячется в кэше, о нём ниже.
Отдельные значки рабочего стола, вроде Корзины или Этот компьютер, живут в другом месте: Параметры → Персонализация → Темы → Параметры значков рабочего стола. В окне отметьте нужный объект, нажмите Сменить значок…, выберите картинку и закройте настройки кнопкой ОК. Здесь же галочки решают, какие системные объекты вообще видны на столе.
Есть тонкость, о которой вспоминают поздно. Ярлык запоминает абсолютный путь к ico, поэтому перенесёте файл рисунка в другую папку – значок рассыплется в белую заглушку. Держите коллекцию в постоянном месте вроде C:\Icons, и она переживёт любые уборки на диске. Смена значка у папки записывается в скрытый файл desktop.ini внутри неё со ссылкой на полный путь к рисунку, так что скопированный на другой диск каталог может потерять украшение.
Свои рисунки в ico из готовых картинок png
Исходник для собственного значка – квадратная картинка png с прозрачным фоном и размером от 256 пикселей по стороне. Меньший исходник даст мыло на большом виде, а непрозрачный фон обернётся белым квадратом вокруг рисунка. Квадратная форма избавляет от пустых полей, хотя вытянутые картинки тоже переживут превращение, просто с запасом прозрачности.
Удобный инструмент – консольная утилита ImageMagick, бесплатная и лёгкая на подъём. Она собирает многослойный ico одной строкой:
magick logo.png -define icon:auto-resize=256,64,48,32,24,20,16 logo.ico
Команда вводится в командной строке из папки с рисунком, а после её отработки рядом появится файл logo.ico с готовым рядом размеров – утилита сама уменьшит исходник по ступеням и упакует всё в один файл. Цифры в строке меняйте под себя: кому-то хватает 16, 32 и 256.
Рабочий минимум для папки – 16, 32, 48 и 256 пикселей; ступени 20 и 24 приберегите для экранов с масштабом 125% и 150%, а 64 – для больших представлений. Лишние размеры файлу не вредят, картинка лишь слегка раздувается.
Второй путь – редактор GIMP. Откройте картинку, затем Файл → Экспортировать как…, впишите имя с расширением .ico и нажмите Экспорт. Выскочит окно со списком размеров: отметьте галочками нужные ступени и подтвердите. Собранный файл не отличить от заводского.
Проверка результата проста: скопируйте готовый ico в любую папку, переключите вид на Крупные значки и оцените резкость, затем на Мелкие значки – там картинка тоже обязана оставаться читаемой.
Кэш значков в папке Explorer и его капризы
Проводник не перечитывает картинки заново при каждом открытии окна. Собрав галерею однажды, он раскладывает её по базам кэша и дальше раздаёт готовое – благодаря этому окно папки открывается мгновенно. Расплата за скорость: подмените ico с тем же именем или поправьте значок целого типа файлов – а на экране всё ещё красуется старьё, иногда неделями.
Базы лежат в папке %localappdata%\Microsoft\Windows\Explorer. Имена говорят сами за себя: iconcache_16.db, iconcache_32.db, iconcache_48.db, iconcache_96.db, iconcache_256.db и вплоть до iconcache_2560.db – по базе на каждый размер, плюс служебные iconcache_idx.db, iconcache_sr.db и iconcache_custom_stream.db. Рядом прячется и наследие старых версий, файл IconCache.db прямо в %localappdata%. Миниатюры фотографий и видео хранятся отдельно, в соседних файлах thumbcache_*.db, – это уже другая кухня.
Вывод из устройства кэша неутешительный для нетерпеливых: система узнаёт о новой картинке, только когда старые базы исчезнут с диска. Хорошие новости в том, что процедура занимает минуту и не требует ничего, кроме встроенных команд. Есть и манёвр быстрее полного сброса: сохраните обновлённый рисунок под новым именем и укажите его в свойствах заново. Привязки кэша держатся за путь, а незнакомый путь заставляет проводник читать файл с нуля. Способ выручает не всегда, но пару минут экономит.
Сброс кэша командами ie4uinit и перезапуском проводника
Лечение сводится к одному: вынудить проводник выбросить устаревшие базы и собрать их заново. Быстрая помощь при слегка отставших значках – команда ie4uinit.exe -show, она обновляет привязки иконок без удаления баз; в старых версиях та же утилита отзывалась на ключ -ClearIconCache. Запущенные случаи требуют полного сброса. Порядок действий такой:
- Нажмите Win+R, введите cmd и подтвердите сочетанием Ctrl+Shift+Enter, чтобы командная строка открылась с правами администратора;
- Перейдите к базам командой
cd /d %localappdata%\Microsoft\Windows\Explorerи просмотрите перечень командойdir iconcache*; - Выгрузите проводник командой
taskkill /f /im explorer.exe– рабочий стол и панель задач исчезнут, это нормальное поведение на минуту; - Сотрите базы командой
del /a /q iconcache*, а затем и файл%localappdata%\IconCache.db; - Обновите значки командой
ie4uinit.exe -show; - Запустите оболочку заново командой
explorer.exe– рабочий стол вернётся, а базы соберутся с нуля уже с новыми картинками.
Всю последовательность удобно ввести целиком в то же окно командной строки: после каждой строки нажимается Enter, а после последней рабочий стол запускается заново.
cd /d %localappdata%\Microsoft\Windows\Explorer
dir iconcache*
taskkill /f /im explorer.exe
del /a /q iconcache*
del /a /q "%localappdata%\IconCache.db"
ie4uinit.exe -show
explorer.exe
Если команды не по душе, есть мягкий вариант. Ctrl+Shift+Esc откроет Диспетчер задач, на вкладке Процессы найдите строку Проводник, правая кнопка – и пункт Перезапустить задачу. Рабочий стол мигнёт и оживёт. Без удаления баз эффект нестойкий, но для мелких капризов интерфейса хватает. Перезагрузка компьютера подчищает только память, базы на диске остаются прежними, поэтому командный способ надёжнее.
После перезапуска проверьте результат командой dir iconcache в той же папке: Windows пересоздаст базы автоматически по мере обращения к окнам. Файлы thumbcache_.db не трогайте – вместе с ними исчезнут и миниатюры фотографий, которые придётся ждать заново.
Типовые ошибки при смене значков и их исправление
Первая ловушка – переименование png в ico руками. Формат ico – контейнер с несколькими картинками и служебным каталогом, а png – одиночный рисунок, поэтому после такой подмены проводник покажет пустую заглушку. Лечится только настоящей конвертацией из предыдущих разделов.
Вторая ошибка – значок не меняется после подмены файла с тем же именем. Проводник верит кэшу, а не файлу на диске, поэтому сброс по схеме выше обязателен. Третья – исчезнувший значок ярлыка после переноса рисунка: откройте Свойства → Ярлык → Сменить значок… и укажите файл на новом месте. Четвёртая – мыло в мелких видах: в ico нет картинок 16 и 20 пикселей, пересоберите файл с полным рядом.
Отдельная история – значки целых типов файлов. За них отвечает реестр. Создайте в Блокноте файл icon-txt.reg со строками:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\txtfile\DefaultIcon]
@="C:\\Icons\\note.ico,0"
Сохраните файл, откройте двойным кликом и подтвердите добавление сведений в реестр. Строка в кавычках – путь к вашему рисунку, её и правьте под себя; двойные слэши обязательны, а число после запятой – номер картинки внутри файла. После импорта прогоните сброс кэша из предыдущего раздела, и все текстовые документы переоденутся разом.
Пятая история – значок диска в окне Проводника: у дисков нет вкладки Настройка, картинка задаётся через реестр. В редакторе реестра в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons создаётся подключ с буквой диска, внутри него – ключ DefaultIcon со строкой вида C:\\Icons\\disk.ico,0. После правки и сброса кэша диск получает новый рисунок во всех окнах.
Шестая загадка – папка с фотографиями внутри упрямо показывает превью содержимого вместо вашего рисунка. Это не поломка: приоритет миниатюр установлен системой ради скорости узнавания. Попробуйте другой вид, например Список, или смените картинку – значок проявится там, где превью не строится.
Пара вечеров с этими приёмами превращает скучный стол в понятную навигацию: проектные каталоги с флажками, архивы с ящиками, рабочие ярлыки с фирменными цветами. Чем точнее значки, тем меньше времени уходит на поиск глазами – а глаз, в отличие от поиска по папкам, благодарность выражает мгновенно.