HotXLS 文件

BuildBiffPalettePlan 方法

建置一份具確定性的唯讀計畫,將直接 RGB 色彩與已解析的佈景主題色彩安排到 56 個實體 BIFF 調色盤槽位中

此方法同時適用於 IXLSWorkbook 與 TXLSXWorkbook,且絕不會變更調色盤項目、樣式、儲存格、自訂色彩計數或儲存行為

語法

function BuildBiffPalettePlan: TXLSBiffPalettePlan;

槽位計畫

Slots 一律包含 56 個項目,依 1 到 56 的公開索引順序以及 8 到 63 的實體槽位順序排列

欄位意義
SourceARGB調色盤槽位中目前儲存的正規化色彩
TargetARGB為該槽位建議的色彩,尚未套用
DefinitionCount 與 ReferenceCount繼承自 ScanIndexedColorUsage 的索引取用者
Kinds保護該槽位的索引取用者類別
Locked當來源槽位必須維持不變時為 True
Changed當建議的目標色彩與來源色彩不同時為 True

目標對應

Targets 會彙總相同的色彩,並記錄定義計數、已呈現的參考計數、取用者類別、有效頻率權重、選定的公開與實體索引、對應後的 ARGB、OKLab 誤差平方以及精確比對狀態

已呈現的參考存在時,便由它們決定有效權重;否則已儲存的定義會讓未被參考的色彩仍保留在計畫中

來自字型、填滿、漸層、框線、差異樣式、資料橫條與色階的直接色彩與已解析的佈景主題色彩都會參與規劃,而索引色彩、自動色彩、無效色彩與半透明色彩則不會成為目標

規劃行為

既有的精確調色盤色彩會保留在其最低的相符槽位上,而且在考慮任何空閒槽位之前,索引取用者會先鎖定其來源槽位

當所有唯一目標都容納得下時,空閒槽位會依確定性的 ARGB 順序接收精確色彩

當色彩數量超過空閒槽位數量時,固定迭代次數的頻率加權 OKLab 分群程序會挑選其餘的目標色彩,而鎖定與保留的精確槽位則維持固定

最終等距的對應採用最低的公開調色盤索引

計畫識別與統計資訊

SourcePaletteGeneration 與 SourcePaletteHash 識別建置計畫所依據的調色盤快照

LockedSlotCount、ChangedSlotCount、TotalTargetWeight、ExactTargetWeight、WeightedError、MaxDistanceSquared 與 Quantized 彙總結果,供檢查與原則決策使用

範例

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]);

另請參閱