Método BuildBiffPalettePlan
Constrói um plano determinístico só de leitura para representar cores RGB diretas e cores de tema resolvidas nas 56 ranhuras físicas da paleta BIFF
O método está disponível tanto em IXLSWorkbook como em TXLSXWorkbook e nunca altera entradas da paleta, estilos, células, contagens de cores personalizadas ou comportamento ao guardar
Sintaxe
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
Plano de ranhuras
Slots contém sempre 56 entradas por ordem de índice público de 1 a 56 e por ordem de ranhura física de 8 a 63
| Campo | Significado |
|---|---|
SourceARGB | A cor normalizada atualmente armazenada na ranhura da paleta |
TargetARGB | A cor proposta para a ranhura sem a aplicar |
DefinitionCount e ReferenceCount | Os consumidores indexados herdados de ScanIndexedColorUsage |
Kinds | As categorias de consumidores indexados que protegem a ranhura |
Locked | True quando a ranhura de origem deve permanecer inalterada |
Changed | True quando o destino proposto difere da cor de origem |
Mapeamentos de destino
Targets agrega cores iguais e regista a contagem de definições, a contagem de referências renderizadas, as categorias de consumidores, o peso de frequência efetivo, os índices públicos e físicos selecionados, o ARGB mapeado, o erro quadrático OKLab e o estado de correspondência exata
As referências renderizadas determinam o peso efetivo quando existem; caso contrário, as definições armazenadas mantêm as cores não referenciadas representadas no plano
Cores diretas e cores de tema resolvidas de tipos de letra, preenchimentos, gradientes, limites, estilos diferenciais, barras de dados e escalas de cores participam no planeamento, enquanto cores indexadas, automáticas, inválidas e parcialmente transparentes não se tornam destinos
Comportamento de planeamento
As cores exatas já existentes na paleta são mantidas na ranhura correspondente mais baixa e os consumidores indexados bloqueiam as suas ranhuras de origem antes de considerar qualquer ranhura livre
Quando todos os destinos únicos cabem, as ranhuras livres recebem cores exatas por ordem determinística de ARGB
Quando existem mais cores do que ranhuras livres, uma passagem de agrupamento OKLab ponderada pela frequência, com iterações fixas, escolhe as restantes cores de destino, enquanto as ranhuras bloqueadas e as ranhuras exatas retidas permanecem fixas
Os mapeamentos finais com distância igual utilizam o menor índice público da paleta
Identidade e estatísticas do plano
SourcePaletteGeneration e SourcePaletteHash identificam o instantâneo da paleta a partir do qual o plano foi construído
LockedSlotCount, ChangedSlotCount, TotalTargetWeight, ExactTargetWeight, WeightedError, MaxDistanceSquared e Quantized resumem o resultado para inspeção e decisões de política
Exemplo
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]);