Владимир Кириченко (Steve Key), Steve_KEY@mail.ru Inc. "the OWL" , Bigelow@rambler.ru.ru
Вам не надоела однообразная заставка при загрузке Windows, прославляющая "Windows'95 Microsoft Internet Explorer" или просто "Windows'98" с примитивной движущейся градиентной строкой по низу экрана? Мне - уже давно! И, хотя эта заставка "держится" на экране не более нескольких секунд (на некоторых машинах - аж до минуты), все же хочется иметь здесь что-то свое!
С улыбкой вспоминаю теперь свои первые попытки как-то изменить заставку с помощью графического редактора Paint (когда узнал, что она "спрятана" в файле logo.sys) - любая попытка что-то дописать на оригинальное изображение приводила к тому, что движущаяся градиентная строка наглухо останавливалась...
Сразу скажу, что делать картинки по типу тех, что "идут" с Windows, т. е. с движущейся полосой, мне было неинтересно... Поэтому появилась идея сделать движущимся ВСЕ небо на каком-либо пейзаже.
Программисты Microsoft'а видимо, просто "прикололись" с загрузочной картинкой, заставив Windows при загрузке "вращать" часть палитры для создания эффекта движения (по научному - ротация) - ведь заставки, которые показываются при подготовке к выключению питания и "Теперь питание компьютера можно отключить", не двигаются! Весь же фокус изготовления таких картинок состоит в том, что изображение соответствующего размера (320х400 точек) в индексированных цветах (256-цветная палитра) должно быть обработано так, чтобы те места, которые мы хотим "оживить" (в нашем случае - небо), были определены цветами в конце палитры, и соответственно в самом файле формата BMP число используемых для "неподвижной" части цветов было явно указано. Изображение также не должно быть упакованным, иначе Windows его "не поймет".
Сложно так сразу понять? Далее будет пошагово описана процедура подготовки изображений для "оживления" загрузки. Команды будут приведены для пятой англоязычной версии PhotoShop'а. Хотя изготовить необходимую картинку можно практически в любом "настоящем" графическом редакторе...
Для начала следует подобрать готовую картинку (типа той, что помещена в этой статье) с пейзажем, на котором достаточно большyю часть занимает небо с облаками (с ними картинка более эффектно выглядит), а цветa на самом пейзаже (т. е., на изображении земли там, деревьев и пр.) отличались бы от небесных оттенков...
Сначала нужно перевести изображение в систему RGB, если оно закодировано в другой системе. Выберите из меню пункты Image/Mode, далее выберите RGB Color. Далее щелкните правой кнопкой мыши на изображении слоя Background на палитре Layers и в появившемся меню выберите Duplicate Layer. Название ему можете дать любое, а можно и оставить по умолчанию: Background copy.
Размер исходной картинки может быть практически любым (бoльшим или равным 640х480), а соотношение высоты и ширины лучше всего - 3/4. Если это соотношение другое, следует "обрезать" лишнее, выделив сюжетно важную часть (небо, как правило). Для проведения этой операции следует выбрать из меню пункты Image/Image size, далее в появившемся диалоговом боксе установите флажки Constrain Proportions и Resample Image (выберите Bicubic), в рамке Pixel Dimensions выберите единицы измерения Pixels. Далее "поиграйтесь", набирая различные значения высоты и ширины картинки, подбирая оптимальные. Например, наберите в окошке Width число 640, тут же автоматически изменится значение Height. Если Height получится больше 480, нажмите OK, иначе наберите Height, равную 480, и если Width получится более 640, нажмите OK. Затем выберите из меню Image/Canvas size и установите размер картинки 640х480, при необходимости выбрав внизу диалога положение оставшейся части изображения на целой картинке (т. е., определите, какая часть изображения будет сохранена), и нажмите OK (придется еще подтвердить эту операцию).
Теперь мы имеем изображение с соотношением сторон 3/4, т. е. равным соотношению сторон экрана монитора. Далее, выбрав снова Image/Image size и отключив флажок Constrain Proportions, следует установить размеры картинки 320х400. Естественно, изображение потеряет пропорциональность (оно станет вытянутым по вертикали), но именно такой формат нужен для файла Logo.sys!
Далее следует любым способом отделить "небо" от "земли". Обычно я пользуюсь режимом быстрой маски. Чтобы включить этот режим, следует нажать "горячую" букву Q, или щелкнуть мышью на кнопке с изображением белого круга на сером прямоугольнике, которая находится на палитре инструментов во втором снизу ряду (ярлычок, появляющийся при наведении на нее курсора мыши, гласит: Edit in Quick Mask Mode). Теперь, если выбрать карандаш (не кисточку!) мышью или горячей клавишей N, то "рисование" черным цветом будет закрашивать изображение красным цветом (по умолчанию, можно установить любой другой, если нужно), а "рисование" белым цветом (кстати, цветa переключаются горячей клавишей X) будет убирать закрашивание. Закрашенные таким образом участки изображения считаются покрытыми "Быстрой маской". Перед нами стоит задача закрасить, например, все детали пейзажа, кроме неба, которое будет сделано движущимся. При выполнении этой операции следует сильно увеличить изображение, чтобы были видны отдельные пиксели, из которых оно состоит, и работать самыми мелкими карандашами (выбрать размер карандаша можно, щелкнув правой кнопкой мыши на изображении, и из появившегося всплывающего меню выбирать пункты First Brush, Next Brush и Previous Brush).
Когда операция выделения будет закончена, нужно отключить режим быстрой маски, нажав Q или кнопку на палитре инструментов рядом с той, которой эта маска была включена. Мы увидим, что часть изображения окажется выделенной линией, состоящей из "бегущих муравьев" (стандартное выделение).
Теперь заберите в буфер выделенную часть изображения, нажав на выбор Shift+Del, Ctrl+X или выбрав из меню пункты Edit/Cut. Затем вставьте вырезанную часть, нажав Shift+Ins, Ctrl+V или через меню Edit/Paste. Скорее всего, эта часть вставится в центр картинки, но это не беда - выбрав инструмент Move Tool (второй в палитре инструментов, горячая буква V) и увеличив изображение так, чтобы была видна граница удаленной части картинки, подвиньте вырезанную часть до совпадения ее края с краем оставшейся части.
У нас получилось изображение, состоящее из двух слоев, один из которых называется Layer 1 (название можно поменять при желании).
Для дальнейшей работы отключите видимость того слоя, где находится небо, нажав на изображение глаза рядом со слоем в палитре Layers и создайте палитру для основного изображения, выбрав из меню Image/Mode/Indexed Color (подтвердите сведeние слоев - Flatten), далее выберите: Palette-Adaptive, Color Depth-6 bits/pixel (выберется 64 цвета: остальные будут использованы для "движущегося" неба - чем больше цветов отведено для движения, тем движение плавнее, и, соответственно, наоборот - чем меньше цветов, тем быстрее), Dither-None, Color Matching-Best и нажмите OK. Затем выберите Image/Mode/Color table и найдите на вид самый черный квадратик в верхней четверти таблицы. Теперь ткните мышкой в левый верхний квадратик и запомните цвета, из которых он состоит - R, G, B. Теперь нажмите Esc и ткните на тот самый черный квадратик - здесь следует задать запомненные на предыдущем шаге цветa и нажать OK, а затем ткнуть в верхний левый квадратик и задать там все три цвета "по нулям". Это нужно сделать для того, чтобы рамка вокруг изображения при загрузке Windows была черного цвета - так привычнее... Нажмите Save в этом же окне и сохраните палитру в файл с расширением ACT под любым именем - она вам понадобится в дальнейшем. Затем нажмите Esc и Ctrl-Z для отмены преобразования картинки в индексированные цветa - она нам еще нужна в RGB...
Включите изображение неба (глаз около слоя) и выберите для работы этот слой - ткните в него мышкой. Выберите из меню Image/Adjust/Color Balance или просто нажмите Ctrl-B, затем включите в появившемся окне флажок Preview, если он был выключен и, выбирая поочередно переключатели Shadows, Midtones и Highlights, "на глаз" подкорректируйте оттенки неба так, чтобы они были более яркими, более "живыми", с переходом от почти темно-синего до ярко-белого цвета. Обычно для этого нужно сдвигaть верхний движок Cyan-Red влево на 35-45 единиц (процентов), а нижний Yellow-Blue на столько же вправо (могут быть варианты - смотрите, как изменяется изображение). Флажок Preserve Luminosity включите как Вам больше нравится... Добившись приемлемого результата, нажмите OK.
Теперь нужно отключить изображение слоя с "землей" и, снова выбрав из меню пункты Image/Mode/Indexed Color, установить Palette-Adaptive, Dither-None, Color Matching-Best и Colors-96 (половина от оставленных нами для неба). Далее, ничего более не меняя, выберите Palette-Custom и Вы увидите палитру, которую предложит для данного неба PhotoShop. Обратите внимание, какой цвет самый темно-синий (ткните на него мышкой и запомните значения) и какой самый светлый (тоже запомните) - может пригодиться потом. А для начала попробуйте такой трюк - выделите 6 строк палитры (нажмите на первую клеточку мышкой и, передвинув мышь на последнюю клеточку, отпустите кнопку) - Вам будет предложено определить первый и последний цвет градиента (остальные промежуточные цвета программа "придумает" сама). Определите первый цвет как синий (R и G - по нулям, B - 255), а последний - белым (все три по 255). Ткните OK. Дождитесь, пока компьютер "просчитает" изображение с новой палитрой (перестанет мигать курсор около флажка Preview) и посмотрите на результат. Если понравилось - нажмите OK, если же "не пойдет" - выберите еще раз (или много раз) Custom и переопределите палитру таким образом, чтобы при наличии градиента от примерно темно-синего цвета к почти белому облака и небо смотрелись бы естественно (тут нужен определенный вкус и отсутствие дальтонизма ;-). Запомните определенные Вами цветa - они Вам точно пригодятся!
Когда небо будет уже приемлемым, нажмите OK и выделите полученную таким образом картинку (Ctrl-A или в меню Select/All) и скопируйте ее в буфер обмена (Ctrl-Ins или Ctrl-C). Затем нажимайте Alt-Ctrl-Z до тех пор, пока картинка не вернется к своему первоначальному варианту - с двумя слоями. Включите отображение всех слоев, слой с изображением неба "бросьте" в корзину (или удалите, щелкнув на нем правой кнопкой мыши и выбрав из всплывшего меню Delete Layer), а из буфера обмена вставьте то небо, которое поместили туда на предыдущем шаге. Если оно "затмит" собою все изображение, перетащите слой с небом на самую нижнюю позицию, так, чтобы "земля" была выше его.
У нас опять получилась почти прежняя картинка с пейзажем и небом, только небо несколько другого оттенка. Переходим к завершающей стадии создания файла Logo.sys.
Включите отображение всех слоев, выберите (в который уже раз) Image/Mode/Indexed Color. Подтвердите сведeние. Выберите Dither-None, Palette-Custom и загрузите (Load) сохраненную ранее палитру, созданную для "земли". Начиная от пятой строки квадратиков, выделите следующие шесть строк и задайте на них градиент - тот, который ранее задавали для неба. Нажмите OK и посмотрите на результат (подождите, пока перестанет мигать курсор около флажка Preview). Если все в порядке - нажмите OK, если же нет - значит, Вы где-то ошиблись - попробуйте повторить все заново, внимательно следя за результатами...
Выберите из меню Image/Mode/Color table и сохраните полученную палитру в другой файл, затем для проверки заполните верхние четыре строки квадратиков черным цветом - выделите их и задайте для первого и для последнего черный цвет (R, G, B - по нулям). В идеале все, кроме неба, должно стать черным, но на небе не должно быть черных пятен (это говорит о неверном выборе палитры - цветa "земли" и "неба" перекрываются), также не земле не должно быть пятен другого цвета, кроме черного.
Если все так, как здесь описано - поздравляю! Картинка практически готова! Осталось немного...
Выберите Image/Mode/Color table и загрузите последнюю сохраненную палитру. Нижние шесть строк в ней имеют до сих пор черный цвет - это нужно исправить! Задайте для этих клеточек такой же градиент, как и для предыдущих шести строк, но в обратном порядке (т. е. от белого к синему). Нажмите OK.
Сохраните изображение в файл BMP - выберите из меню File/Save As, выберите нужный формат (Save As-BMP (*.BMP;*.RLE), название можно оставить прежним, нажмите OK (или что там будет - в русской версии Windows - Сохранить). В появившемся окне BMP Options выберите File Format-Windows и снимите флажок Compress (RLE). Подтвердите (OK).
Картинка, в общем, готова. Но для того, чтобы при помещении ее в папку C:\ во время загрузки Windows небо на ней "двигалось", нужно немного "подправить" всего один байт в файле BMP. Тут уже нужно быть немного "хакером" (крылатое выражение: "Все мы немного лошади"...).
Запускаем любой дамповый (шестнадцатиричный) редактор (RED, DUB или что-то подобное. Я лично предпочитаю в качестве такового использовать VC - Volcov Commander. Можно попробовать FAR, но с ним можно и "пролететь", если к его редактору нацеплены определенные "плагины" (Plugins). Кстати, обратите внимание на длину нашей BMP-шки - она должна быть 129080 байт или 129078 байт, а при просмотре в виде текста (Alt-F3 в VC, NC или FAR'е) первые байты должны быть BM6 или BM8. Любое другое значение говорит о том, что PhotoShop неправильно сохранил палитру - при просмотре все будет, вроде бы, в порядке, а при использовании файла как Logo.sys - бардак!
Итак, загружаем нашу картинку в дамповый редактор (в VC нажимаем на файле F4 дважды - для загрузки в редактор и для переключения в дамповый режим, а в FAR'е - F4 и F11, далее выбираем HexEditor). Подправляем байт по смещению 32H (шестнадцатиричное, 50 десятичное) с 00H на 40H (64 десятичное). Сохраняем. Далее копируем его на C:\ с именем LOGO.SYS. Перезагружаем машину и любуемся.
Если любоваться нечем, лезем любым редактором в файлы MSDOS.--- (расширение - три минуса) и MSDOS.SYS и вписываем в раздел [Options] строку Logo=1 (или исправляем на вышеуказанное строку Logo=0). Снова перезагружаемся и теперь уж точно любуемся!!!
Эффект довольно красив (сам обалдел, когда увидел первый раз) - небо на картинке постепенно становится как бы грозовым, потом почти инверсным, а затем принимает опять нормальный вид. Кстати, для того, чтобы вдоволь налюбоваться на плоды Вашего творчества (и моего тоже), нажмите, когда появится наша заставка, клавишу Pause на клавиатуре - и картинка будет "жить" до нажатия любой другой клавиши.
Итак, я дал достаточно информации, чтобы "средний" пользователь (слово некорректное, но другого пока не выдумали) программы PhotoShop смог сделать свою движущуюся заставку на свой компьютер. Разумеется, эффектов можно сделать еще больше и еще лучше - пробуйте, экспериментируйте, и у Вас получится! "Наваяете" что-нибудь оригинальное - шлите мыло (мой адрес в начале статьи).
Удачи!