NearestIndexedColor metoda
Poišče najbližji vnos med fizičnimi režami palete 8..63 in vrne tako njegovo javno vrednost ColorIndex kot fizično režo
Metoda je na voljo tako pri IXLSWorkbook kot pri TXLSXWorkbook in ne spreminja stanja palete ali delovnega zvezka
Skladnja
function NearestIndexedColor( AArgb: LongWord; out AMatch: TXLSNearestIndexedColorMatch): Boolean;
Vhod
AArgb sprejme 24-bitno vrednost $00RRGGBB ali motno vrednost $FFRRGGBB
Ničelni bajt alfa se normalizira na $FF; delno prosojne vrednosti so zavrnjene, ker so vnosi indeksirane palete delovnega zvezka motni
Rezultat
| Polje | Pomen |
|---|---|
InputARGB | Normalizirana motna vhodna barva |
ColorIndex | Javni indeks palete od 1 do 56 |
PaletteSlot | Fizična reža palete BIFF ali OOXML od 8 do 63 |
ARGB | Normalizirana motna barva, shranjena v izbrani reži palete |
DistanceSquared | Kvadrirana evklidska razdalja v barvnem prostoru OKLab |
ExactMatch | Res, ko ima izbrani vnos iste kanale RGB kot normalizirani vhod |
Funkcija vrne false za delno prosojen vhod ali ko predpomnilnik palete ni na voljo; ob napaki se ColorIndex inicializira na nič in PaletteSlot na -1
Pogodba o ujemanju
Vsak delovni zvezek predpomni normalizirane vrednosti ARGB in koordinate OKLab svojih 56 fizičnih vnosov palete
Ponastavitev palete znova izgradi celoten predpomnilnik, učinkovita sprememba ene reže pa posodobi samo to predpomnjeno režo
Vsaka poizvedba enkrat pretvori vhod in izvede eno fiksno preiskovanje 56 vnosov, brez zgodovine poizvedb ali neomejene rasti predpomnilnika
Enake razdalje izberejo najnižji javni indeks, vključno s podvojenimi barvami palete, tako da ostanejo rezultati deterministični med pogoni in zagoni
Samodejni, sistemski in neveljavni barvni žetoni niso kandidati; za razvrstitev teh vrednosti uporabite ResolveIndexedColor
Primer
if Workbook.NearestIndexedColor($FF13579B, Match) then
begin
PaletteIndex := Match.ColorIndex;
if Match.ExactMatch then
UseExactPaletteColor(Match.ARGB);
end;