# Tworzenie ikon - Teoria

Ikony dla Light Alloy tworzone są w formie pakietu dwóch plików:

- Biblioteki ikon w formacie .icl
- Pliku opisu w formacie .xml

Związek tych dwóch plików określany jest przy pomocy takiej samej nazwy przy różnych rozszerzeniach. Na przykład, jeśli utworzysz bibliotekę ikon z nazwą graphite.icl, to plik opisu dla tej biblioteki musi mieć nazwę graphite.xml, nigdy inną.

## Tworzenie ikon

Wszystko zaczyna się od utworzenia ikony według Twojego własnego pomysłu. W OS Windows ikony są formowane z wieloma wariantami obrazowania. Co więcej - w przeciwieństwie do Linuksa, gdzie różne rozmiary osiągamy skalowaniem wektorowych ikon - w Windows można rysować ile się tylko chce niezależnych wariantów ikon dla każdego rozmiaru:

Należy pamiętać, że im mniejsze rozmiary ikon zrobisz, tym mniej miejsca ta ikona będzie zajmowała. Ponadto, aby jeszcze bardziej zmniejszyć rozmiar ikon, można w nich zastosować kompresję png (dla rozmiarów 64х64 i większych). Pozwala to zmniejszyć miejsce zajmowane przez ikony od 3 do 10 razy bez utraty jakości.

Jednakże, jest limit efektywności ustawienia rozmiarów, który zalecany jest do użytkowania. Proszę pamiętać, że wszystkie rozmiary przedstawiają kwadrat:

- 16х16 — tryb wyświetlania "lista", "tablica";
- 32х32 — tryb wyświetlania "ikony", menedżery plików firm trzecich (np. Total Commander, Double Commander, itp.) aktywnie wykorzystują ten rozmiar;
- 48х48 — tryb wyświetlania "kafelki", "duże ikony";
- 96х96 — tryb wyświetlania "Obrazki" (Windows Vista i nowszy);
- 256х256 — tryb wyświetlania "Bardzo duże ikony" (Windows Vista i nowszy);

Wybieraj głębię kolorów RGB + alpha
Nazwy mogą być różne w różnych programach, ale istotą jest: obsługa pełnej 24-bitowej palety kolorów oraz pełnej 8-bitowej przezroczystości. Wybranie ograniczonej głębi kolorów nie jest zalecane: w nowoczesnych systemach operacyjnych nie ma ona istotnych zalet.

Zalecane jest rozpoczęcie rysowania ikony od największego rozmiaru - 256х256. Później będziemy mieli do czynienia z bardzo ważnym pytaniem: jak rysować mniejsze rozmiary? Istnieją dwie metody:

- wykonanie mniejszych rozmiarów przez skalowanie dużych;
- rysowanie wszystkich mniejszych rozmiarów od podstaw.

Pierwsza metoda jest bardzo szybka, ale dobre efekty są tylko wtedy, gdy nie mam małych detali:

Jeśli jednak w ikonie występują małe detale, to wykonanie pomniejszania rozmiaru za pomocą skalowania - pomimo dołożenia wszelkich starań - da efekty rozmycia:

Jak widać, czym mniejszy rozmiar, tym gorzej obrazek wygląda.

W takim przypadku rysowanie każdego rozmiaru oddzielnie, chociaż zajmie dużo więcej czasu, daje o wiele bardziej imponujący efekt.
Zwróć uwagę, wszystko wygląda czysto i wyraźnie:

## Tworzenie biblioteki ikon

Podczas tworzenia biblioteki należy określić poziom jej wypełnienia i uniwersalności. Twoja biblioteka może zawierać:

- tylko jedną ikonę;
- trzy ikony: po jednej dla listy odtwarzania, wideo i audio;
- po ikonie dla każdego rozszerzenia.

Można również połączyć te koncepcje. Np. można utworzyć ikony dla trzech typów, a także osobiste ikony dla niektórych rozszerzeń.

Jako pierwsza w bibliotece powinna znajdować się uniwersalna ikona bez rozszerzenia pliku.
Prędzej czy później pojawią się w odtwarzaczu rozszerzenia, które nie są dostępne w pakiecie ikon. W takim przypadku programu użyje pierwszej ikony z pakietu. I będzie dobrze, jeśli ta pierwsza ikona nie będzie wprowadzać w błąd. W najlepszym razie, nie umieszczaj pierwszej ikony z nadpisanym rozszerzeniem.

Od Twojego wyboru będzie zależeć uniwersalność, poręczność i rozmiar pakietu ikon.

## Tworzenie pliku opisu

Plik opisu odpowiada za przechowywanie informacji o autorze, nazwie i krótkiego (bardzo krótkiego!) opisu pakietu ikon. Zalecane jest utworzenie pliku używając kodowania "UTF-8 with signature" (również - UTF-8 BOM).

Może on wyglądać tak:

<?xml version="1.0" encoding="UTF-8"?> <ICONLIB> <AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/> <ICONS> <ICON id="0" ext="AAC,AC3,AIF,APE,AT3,AU,CDA,DTS,FLAC,MIDI,MKA,MOD,MP3,MPA,MPC,OGG,WAV,WMA,OPUS"/> <!-- audio --> <ICON id="1" ext="ASX,BDMV,CUE,IFO,LAP,LST,M3U,MPLS,PLS"/> <!-- playlist --> <ICON id="2" ext="AVI,AVS,FLV,M1V,M2TS,MKV,MOV,MP4,MPG,MPV,MTS,OGM,QT,RMVB,TS,VOB,WEBM"/> <!-- video --> </ICONS> </ICONLIB>

Musimy zrozumieć, co jest do czego. Poniżej normalna linia:

<AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/>

Ten tag zawiera pojedyncze polecenie. Charakteryzuje się specjalnymi nawiasami: < >. Używamy tutaj dwa rodzaje tagów:

1. powiązane;
2. pojedyncze.

Tagi powiązane składają się z dwóch części: otwierającej i zamykającej (np. <ICONLIB> </ICONLIB>). Wewnątrz tagów powiązanych mogą znajdować się inne tagi.
Tagi pojedyncze - <ICON /> - charakteryzują się ukośnikiem przed drugim nawiasem specjalnym. W rzeczywistości, zapis "<ICON />" równoznaczny jest zapisowi "<ICON></ICON>". Robi się to po prostu w celu uproszczenia.

W naszym przypadku tagi składają się z następujących części:

1. Nazwa funkcji (ICON) — lub "co my wszyscy chcemy tym osiągnąć". "ICON" oznacza "stan ikony";
2. parametry(id="0" ext="LA") - dodatkowe sprecyzowanie funkcji. W nich zawiera się cała istota. Określają one, jaka konkretna ikona i w jakich konkretnych przypadkach będzie ustawiana.

Teraz przejdziemy do naszego przykładu i zobaczymy, co za co odpowiada:

Informacja od autora:

<AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/>

- name = nazwa lub pseudonim twórcy pakietu ikon;
- email = podajemy konto e-mail do ewentualnej korespondencji. Można zostawić puste;
- homepage = tutaj można wstawić adres wątku na forum, adres strony WWW lub zostawić puste;
- comments = tutaj wstawiamy inne ważne informacje, np. autora przeprojektowania, rozmiar ikon (256/48/32/16px, 32bit) i cokolwiek innego. Tylko nie daj się ponieść: miejsce jest ograniczone.

Zdeklarowanie ikon:

<ICON id="1" ext="ASX,BDMV,CUE,IFO,LAP,LST,M3U,MPLS,PLS"/>

- id = numer porządkowy w bibliotece ikon. Numeracja rozpoczyna się od zera (0,1,2,3,...) i określa, jakiego rodzaju ikonę przypiszemy określonym rozszerzeniom;
- ext = faktyczne rozszerzenia, dla których będzie używana dana ikona. Jeśli chcemy używać jednej ikony dla kilku rozszerzeń (BDMV,CUE,IFO,...), to wszystkie te rozszerzenia oddzielamy przecinkiem.

## Zakończenie

Teraz pozostaje nam sprawdzenie, czy obydwa pliki są o takiej samej nazwie i opublikowanie ich razem ze zrzutem ekranowym w specjalnym wątku na forum, wcześniej pakując je do archiwum (zalecany format .zip).