Documentação do HotXLS

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

CampoSignificado
SourceARGBA cor normalizada atualmente armazenada na ranhura da paleta
TargetARGBA cor proposta para a ranhura sem a aplicar
DefinitionCount e ReferenceCountOs consumidores indexados herdados de ScanIndexedColorUsage
KindsAs categorias de consumidores indexados que protegem a ranhura
LockedTrue quando a ranhura de origem deve permanecer inalterada
ChangedTrue 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]);

Veja também