Color Management Free Pascal
színpaletta. A program képes kihallgatni vagy módosíthatja a tartalmát bármilyen nyilvántartások vagy paletta tartalmát minden regiszter egyszerre.
SetBkColor (n_reg); // n_reg az a [0, 255]
Színes rajz, amely reprodukálható vonalszakaszok és körvonalaihoz KORMÁNYZATI különböző grafikai alakzatokat (primitívek -. Ívek, körök, ellipszisek, sokszögek beceneveket, stb) keresztül jön létre SetColor eljárás. Az egyetlen érv a DAC-számot, ami fix fizikai előtér színe:
SetColor (n_reg); // n_reg az a [0, 255]
A szín és a kitöltési minta felhasználásával létrehozott SetFillStyle eljárás: SetFillStyle (Pattern, n_reg); // n_reg az a [0, 255]
Minta paraméter (minta) meghatároz egy módszert a töltés egy zárt alak (feltöltés egyszínű, mindenféle árnyékolás, árnyékolás és raszteres t. N.). Minden módszerek, támogat egy könyvtár BGI, fogjuk be a késő neki.
Egy bevezetés az alapértelmezett paletta, amely által kezdeményezett szocializáció grafikus rendszer, akkor használja a programot listin- 15,1 hektár.
Listing 15.1. programot color256
programot color256; használja grafikon;
GD, GM: smallint; x, y, i, j: smallint;
GD: = D8bit; GM: = m800x600; initgraph (gd, GM, „); i: = 0-tól 15 do
j: = 0-tól 15 do kezdeni
y: = j * 20; SetfillStyle (SolidFill, i * 16 + j); Bar (x, y, x + 40, y + 20);
Ez a program folyamatosan ismétli téglalapok mérete
40 20 pixel, festéssel őket egy megfelelő színes tartalmát a következő DAC nyilvántartásba. Az eredmény az ő munkája ábrán látható. 15.2. Számozás színek halad 0 és 255 Mindegyik oszlop a színes 16 egymást követő DAC regiszterek.
Ábra. 15.2. A színpaletta Alapértelmezett
A DAC-nyilvántartási szám nulla nulla megfelelő kódot a minimális intenzitásait hármas RGB-komponensek - (0, 0, 0). A képernyőn, amely megfelel egy sor fekete színű. A regiszter száma 1 a tripla (0, 0, 63), amely megfelel a maximális intenzitása a kék szín. Regisztráljon a 2. számú három (0, 63, 0), és annak tartalmát átvette a zöld. Egy további regiszter „vegyes” és a legnagyobb értékeket a kék szín zele- Nogo - (0, 63, 63), amely megfelel a türkiz színű. A tartalmát egy negyedik regiszter egyenlő (63, 0, 0) látható vörös, és hasonlók. D. jelölést értékek az első 16 szín lehet használni mnemonikot nevek állandók táblázatban látható. 15.4.
Kiválasztása más színek egy alapértelmezett paletta általában végzik, hogy a kísérleti vagy használatával a színek, ábrán látható. 15.2.
Funkciók GetColor GetBkColor és az érvek nem kell. Visszatérnek a Word típusú értékek megfelelő DAC-nyilvántartási számot rendelve egy adott időben, hogy a színek a háttérben, és a rajz:
Telepítéséhez és a lehívási paletta regiszter tartalmát kell alkalmazni a különleges szerkezet - típusú rögzítési és RGBRec PaletteType:
RGBRec = csomagolt rekord Red. smallint; Green. smallint; Blue. smallint;
PaletteType = rekord méretű. LongInt;
Színek. array [0..MaxColors] a RGBRec; végén;
Recording típusú RGBRec jelentése három kétbájtos mező prednaznachen- KORMÁNYZATI tároló tartalmának a DAC regiszter. A rekord PaletteType lehetővé teszi, hogy tárolja a tartalmát a paletta nyilvántartásokban. Az első mező tárolja a méretét byte a paletta. Mögötte egy olyan tömb, amely razmescha- etsya tartalmát minden paletta nyilvántartásokban. A D8bit mód MaxColors (a maximális számú színek) 255.
DACreg: RGBRec; DACall: PaletteType; max_reg: smallint;
max_reg: = GetPaletteSize; // poll max. Szoba paletta regisztrációhoz GetPalette (DACall); // egy felmérést a jelenlegi paletta regisztrálja GetDefdaultPalette (DACall); // lehívhatja az alapértelmezett paletta SetAllPalette (DACAll); // állítsa be az összes SetPalette paletta regiszterek (n_reg, DACreg); // frissíti a nyilvántartást a számát n_reg SetRGBPalette (n_reg, Vr, Vg, vB); // frissíti a nyilvántartást a szám n_reg
Az eljárás SetRGBPalette értékei RGB-komponensek tartozik a [0, 63].
Általánosságban elmondható, hogy nagyon bölcs a változás nem éri paletta - 256 színű paletta alapértelmezett elég nem túl bonyolult BGI-grafika.