Winamp obsługuje skórki klasyczne i nowoczesne. Skórki nowoczesne pozwalają na dowolną zmianę wyglądu oraz zachowania programu. Zmianę wyglądu umożliwiają tzw. schematy kolorów. Schematami kolorów nazywa się zbiór specjalnych plików tekstowych, które definiują wygląd skórek Winampa. Pliki tekstowe zapisywane są w formacie XML. Domyślne skórki Winampa zawierają kilkanaście predefiniowanych schematów kolorów.
Dzięki społeczności Winampa istnieje mnóstwo schematów kolorów, które można użyć w Winampie lub WACUP. Najpopularniejsze i najładniejsze z nich zostały zebrane w jeden instalator pakietów schematów kolorów, który można pobrać z sekcji pobierania. Zawiera on również specjalne narzędzie, tzw, edytor kolorów. Dzięki temu narzędziu tworzenie nowych schematów kolorów bądź edycja już istniejących jest bardzo prosta.
Instalator pakietów schematów kolorów napisany jest w NSIS. Procedura instalacji przedstawiona w tym dokumencie nie powinna nikomu sprawić problemów. Instalator skopiuje wymagane pliki i skonfiguruje odpowiednio system.
Dokument XML zawiera deklarację XML, która umieszczona jest na samym początku pliku. Zawiera ona atrybut version oraz opcjonalnie atrybuty encoding oraz standalone.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Kolejnym elementem pliku jest deklaracja WasabiXML. WasabiXML jest obiektem XML, który zawiera całą skórkę (jest kontenerem dla obiektów GUI). Posiada atrybut version.
<WasabiXML version="1.34">
Ostatnim elementem pliku jest deklaracja konkretnych schematów kolorów. Zdefiniowane są tutaj obiekty gammaset (reprezentuje schemat kolorów) oraz gammagroup (grupa elementów o określonych właściwościach).
<gammaset id="*Default">
Obiekt 'gammaset' jest elementem nadrzędnym i definiuje schemat kolorów. Posiada atrybut 'id'.
<gammagroup id="Titlebar" value="0,0,0" gray="0" boost="0" />
Obiekt 'gammagroup' jest elementem definiującym konkretny element GUI (np. Titlebar). Posiada atrybuty 'id', 'value', 'gray' oraz 'boost'.
Poniżej znajduje się przykładowy plik schematów kolorów skórki Bento / Big Bento z jednym domyślnym schematem kolorów o nazwie '*Default'.
Poniżej znajduje się przykładowy plik schematów kolorów skórki Winamp Modern z jednym domyślnym schematem kolorów o nazwie 'Default'.
Winamp Color Editor (Edytor kolorów Winampa) jest specjalnym narzędziem, które umożliwia użytkownikowi stworzenie własnych schematów kolorów. Dzięki wykorzystaniu tego narzędzia zadanie to jest bardzo proste i łatwe do zrealizowania. Poniżej przedstawiono interfejs programu. Edytor kolorów rozwijany jest przez Nullsoft.
Okno edytora kolorów podzielone jest na kilka obszarów. Lewy górny panel przedstawia listę zainstalowanych schematów kolorów. Prawy górny panel przedstawia listę grup kolorów. Panele znajdujące się u dołu okna to panel ustawień wybranej grupy kolorów interfejsu Winampa oraz panel narzędzi. Każdy z wymienionych obszarów zawiera odpowiednie kontrolki, które zostaną poniżej omówione.
Panel schematów kolorów służy do wyboru bazowego schematu koloru. Zawiera trzy kontrolki.
Lista ta zawiera wszystkie zainstalowane schematy kolorów Winampa dla danej skórki.
Przycisk ten pozwala na sklonowanie wybranego schematu kolorów, który można następnie poddać edycji.
Przycisk ten umożliwia utworzenie nowego schematu kolorów z domyślnymi wartościami kolorów.
Panel grup kolorów służy do wyboru grupy elementów interfejsu o tych samych własnościach. Zawiera trzy kontrolki.
Lista ta zawiera grupy kolorów, których własności chcemy edytować.
Przycisk ten pozwala na skopiowanie wybranej grupy kolorów.
Przycisk ten pozwala na wklejenie uprzednio skopiowanej grupy kolorów.
Panel ustawień grupy kolorów umożliwia nadanie danej grupie kolorów odpowiednich właściwości. Zawiera kilka kontrolek omówionych poniżej.
RGB to model przestrzeni barw, opisywanej współrzędnymi RGB. Jest to model wynikający z właściwości odbiorczych ludzkiego oka, w którym wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w ustalonych proporcjach trzech wiązek światła o barwie czerwonej, zielonej i niebieskiej. Reprezentowany jest przez trzy składowe (r,g,b):
- R: Red – barwa czerwona
- G: Green – barwa zielona
- B: Blue – barwa niebieska
HSL to model przestrzeni barw, w którym każdej barwie postrzeganej przez człowieka jest przyporządkowany jeden punkt w przestrzeni trójwymiarowej identyfikowany przez trzy składowe: (h,s,l).
- H: Hue – odcień, barwa, o wartościach z przedziału 0..360 stopni.
- S: Saturation – nasycenie koloru o wartościach z przedziału 0...1 albo 0...100%.
- L: Lightness – średnie światło białe, o wartościach z przedziału 0...1 albo 0...100%.
Przycisk ten umożliwia podgląd dokonywanych zmian w czasie rzeczywistym.
Trzy suwaki, dzięki którym można ustalić wartość składowych koloru.
Trzy pola, dzięki którym można wpisać wybraną wartość składowej koloru.
Przycisk ten umożliwia ustalenie maksymalnego zakresu skali szarości.
Przycisk ten umożliwia ustalenie średniego zakresu skali szarości.
Przycisk ten umożliwia nasycenie kolorów.
Panel narzędzi zawiera zbiór funkcji niezbędnych do utworzenia schematów kolorów. Zawiera kilka kontrolek zgrupowanych w panelach 'Preview source color' (Podgląd koloru źródłowego) oraz 'Manage' (Zarządzanie).
Panel 'Preview source color' (Podgląd koloru źródłowego):
Pola, dzięki którym można wpisać wybraną wartość składowej koloru (zakres 0..255).
Kliknięcie umożliwia wybranie koloru źródłowego z palety barw kolorów.
Panel 'Manage' (Zarządzanie):
Przycisk ten pozwala na wyeksportowanie edytowanego schematu koloru do pliku XML. Taki plik można rozprowadzać jako schemat kolorów Winampa (aby móc go użyć musi być on umieszczony w katalogu schematów kolorów Winampa, patrz FAQ, 2).
Przycisk ten pozwala na zapisanie wszystkich zmian dokonanych podczas edycji kolorów (patrz FAQ, 14).
Przycisk ten pozwala na wyświetlenie strony z najczęściej zadawanymi pytaniami (FAQ), które dotyczą edytora kolorów (w języku angielskim).
Przycisk ten pozwala na wyświetlenie okienka dialogowego, które przedstawia informacje o edytorze kolorów-nazwę, informacje o wersji, informacje o prawach autorskich oraz autorach programu.
Przycisk ten pozwala na cofnięcie wszelkich zmian dokonanych podczas edycji kolorów.
Przycisk ten pozwala na zatwierdzenie dokonanych zmian i ich podgląd.
Skórka może być spakowana (archiwum zip), więc nie jest możliwa sytuacja, w której edytor kolorów rozpakuje skórkę, zmieni definicje schematów kolorów i spakuje ją ponownie. Nawet gdyby program miał możliwość rozpakowania skórki, lub skórka byłaby już rozpakowana, edytor kolorów musiałby znaleźć plik, który definiuje schematy kolorów-a plikiem tym może być dowolny plik XML skórki. Filozofią edytora kolorów natomiast jest brak bezpośredniego działania na skórce: jedynymi schematami kolorów które poddawane są edycji są te, które użytkownik sam utworzy. Zatem, aby móc edytować schemat kolorów, należy go wcześniej sklonować!
Pierwszym krokiem jest wyeksportowanie schematów kolorów przy użyciu przycisku 'Eksportuj'. Przycisk ten znajduje się na panelu zarządzania edytora kolorów. Następnie należy skopiować wyeksportowany wcześniej plik do odpowiedniej lokalizacji. Lokalizacją tą jest katalog schematów kolorów Winampa, który znajduje się tutaj:
katalog_instalacji_Winampa\plugins\ColorThemes\nazwa_skórki\
Kopiowany plik powinien mieć rozszerzenie XML i unikalną nazwę, aby nie powodować konfliktów z innymi pakietami schematów kolorów (np.: nazwa “themes.xml” nie jest najlepsza). Po uruchomieniu Winampa nowe schematy kolorów powinny być już dostępne i powinny być wyświetlone na liście schematów kolorów edytora kolorów. Pamiętaj, że nie będą mogły one być bezpośrednio edytowane (wymagane jest ich sklonowanie, patrz FAQ, punkt 1).
Pomimmo tego, że wszystkie kolory przestrzeni barw RGB mają swoje odpowiedniki w przestrzeni barw HSL (i na odwrót), nie koniecznie odpowiadają one sobie w stosunku jeden do jednego (dwa kolory przestrzeni barw RGB mogą odpowiadać temu samemu kolorowi przestrzeni barw HSL). Zachowanie takie jest konsekwencją algorytmów konwersji RGB/HSL.
Grupy kolorów są integralną częścią skórki. Są one różne dla każdej ze skórek i definiowane są przez ich twórców. Edytor kolorów pozwala na przypisanie wartości nowego koloru do grup kolorów. Nie ma możliwości tworzenia nowych grup kolorów skórki, którą używasz lub którą tworzysz.
Jedynym sposobem jest ręczne sprawdzenie każdej z grup kolorów. Przyszłe wersje edytora kolorów być może będą umożliwiały podświetlenie określonej grupy kolorów skórki, zadanie to jednak wymaga znacznego obciążenia procesora (zmiana grupy kolorów wymaga ponownego wczytania wszystkich obrazków skórki). Również dany widżet może używać więcej niż jednego schematu kolorów, w związku z czym twórca skórki musiałby wypisać wszystkie te schematy kolorów dla określonych widżetów. Zadanie to byłoby dla twórcy skórki raczej nie do przyjęcia, więc opcja ta nie wchodzi w grę.
Brak grup kolorów dla określonego widżetu może oznaczać, że twórca skórki zapomniał zdefiniować grupy kolorów dla elementów graficznych widżetu lub po prostu przeoczyłeś je.
Wartość maksymalna skali szarości obliczana jest poprzez pobranie maksymalnej wartości kanału czerwonego, zielonego i niebieskiego koloru i przypisanie tej wartości do każdego z nich trzech (każdy piksel przetwarzany jest osobno). Wartość średnia skali szarości obliczana jest poprzez pobranie średniej wartości kanału czerwonego, zielonego i niebieskiego koloru i przypisanie tej wartości do każdego z nich trzech (każdy piksel przetwarzany jest osobno).
Opcja nasycania kanałów (Saturate channels) polega na dodaniu 127 do wartości każdego z kanałów koloru liczby.
Kolor, który widoczny jest powyżej każdego z suwaków jest kolorem piksela, którego wartości kanałów koloru równe są wartościom koloru opcji "Podgląd koloru źródłowego". Aby uzyskać dokładny wynik, należy wybrać poprzedni kolor źródła, który w przybliżeniu jest wartością średnią koloru edytowanego elementu graficznego. Na przykład, jeśli zmieniasz element graficzny, który ma tylko kanał czerwony (kanał zielony i niebieski mają wartość 0), to zmiana pozycji suwaków kanałów zielonego i niebieskiego nie ma wpływu na kolor elementu. W takiej sytuacji możesz użyć opcji zmiany skali szarości i ustalić wartość skali szarości przed dokonywaniem zmian koloru. Możesz również użyć opcji nasycenia kanałów, która zwiększa stopień nasycenia kanałów koloru. W wyniku tych działań wszystkie trzy suwaki będą miały wpływ na zmianę koloru.
Odpowiedź znajdziesz w FAQ, 9.
Wartości składowych koloru schematu kolorów pliku XML-czerwonej, zielonej oraz niebieskiej nie reprezentują bezpośrednio wynikowego koloru (w przeciwnym razie wszystkie piksele miałyby tę samą wartość!). Są to wartości, które używane są do pomnażania (lub podziału) każdego z kanałów koloru piksela.
Suwak regulujący wartość barwy koloru działa podobnie jak suwaki składowych koloru przestrzeni barw RGB, tj. zmienia kolor każdego piksela począwszy od pierwotnej wartości kanałów. Wybrana wartość barwy jest wynikiem przesunięcia wartości barwy w lewo lub prawo na okręgu zakresu barwy. Działanie to jest identyczne z działaniem suwaka składowej czerwonej (zielonej lub niebieskiej), w wyniku czego przesuwana jest wartość składowych oryginalnego piksela. Możliwe jest zatem pełne przejście okręgu w jednym kierunku lub przeciwnym. W przeciwieństwie do programu Photoshop, który pozwala na operowanie na kole barw w zakresie od 0° do 360°, edytor kolorów pozwala na operowanie w zakresie od -360° do +360°.
Także tutaj, suwaki pozwalają na zmianę oryginalnych pikseli w jednym jak i w drugim kierunku. Suwak nasycenia umożliwia zmniejszenie wartości nasycenia piksela poza wartość graniczną zera (a suwak luminancji pozwala na zmniejszenie wartości luminancji poniżej wartości granicznej zera) standardowego algorytmu przestrzeni barw HSL. W efekcie, gdy program Photoshop pozwala na operowanie na wartościach nasycenia oraz luminancji w zakresie od 0 do 100%, edytor kolorów pozwala na operowanie w zakresie od -100% do +100%.
Schematy kolorów zapisywane są w następujących lokalizacjach, w zależności od wybranego typu instalacji Winampa:
Aby móc przesunąć wszystkie suwaki na raz, wciśnij równocześnie klawisz Ctrl lub Shift. Funkcja ta może być czasem przydatna, gdy chcesz po prostu dopasować określony kolor. Dostępne są następujące konfiguracje: