Metoda BuildBiffPalettePlan
Construiește un plan determinist doar-citire pentru reprezentarea culorilor RGB directe și a culorilor de temă rezolvate în cele 56 de sloturi fizice ale paletei BIFF
Metoda este disponibilă atât pe IXLSWorkbook, cât și pe TXLSXWorkbook și nu schimbă niciodată intrările paletei, stilurile, celulele, numărul de culori personalizate sau comportamentul de salvare
Sintaxă
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
Planul de sloturi
Slots conține întotdeauna 56 de intrări în ordinea indecșilor publici de la 1 la 56 și în ordinea sloturilor fizice de la 8 la 63
| Câmp | Semnificație |
|---|---|
SourceARGB | Culoarea normalizată stocată în prezent în slotul paletei |
TargetARGB | Culoarea propusă pentru slot, fără a o aplica |
DefinitionCount și ReferenceCount | Consumatorii indexați moșteniți din ScanIndexedColorUsage |
Kinds | Categoriile de consumatori indexați care protejează slotul |
Locked | True când slotul sursă trebuie să rămână neschimbat |
Changed | True când ținta propusă diferă de culoarea sursă |
Mapări de destinație
Targets agregă culorile egale și înregistrează numărul de definiții, numărul de referințe randate, categoriile de consumatori, greutatea efectivă de frecvență, indecșii publici și fizici selectați, ARGB-ul mapat, eroarea pătratică OKLab și starea de potrivire exactă
Referințele randate determină greutatea efectivă când există; în caz contrar, definițiile stocate mențin culorile nereferite reprezentate în plan
Culorile directe și de temă rezolvate din fonturi, umpleri, gradiente, borduri, stiluri diferențiale, bare de date și scări de culori participă la planificare, în timp ce culorile indexate, automate, invalide și parțial transparente nu devin ținte
Comportamentul planificării
Culorile exacte existente ale paletei sunt reținute la cel mai jos slot care li se potrivește, iar consumatorii indexați își blochează sloturile sursă înainte de a se lua în considerare orice slot liber
Când fiecare țintă unică încape, sloturile libere primesc culori exacte în ordine deterministă ARGB
Când există mai multe culori decât sloturi libere, o trecere de clustering OKLab ponderată după frecvență, cu iterații fixe, alege culorile-țintă rămase, în timp ce sloturile blocate și cele exacte reținute rămân fixe
Mapările finale la distanțe egale folosesc cel mai mic index public al paletei
Identitatea și statisticile planului
SourcePaletteGeneration și SourcePaletteHash identifică instantaneul paletei din care a fost construit planul
LockedSlotCount, ChangedSlotCount, TotalTargetWeight, ExactTargetWeight, WeightedError, MaxDistanceSquared și Quantized rezumă rezultatul pentru inspecție și decizii de politică
Exemplu
Plan := Workbook.BuildBiffPalettePlan;
if Plan.Quantized then
LogPaletteError(Plan.WeightedError);
for I := 0 to High(Plan.Slots) do
if Plan.Slots[I].Changed then
PreviewPaletteChange(Plan.Slots[I]);