เอกสาร HotXLS

เมธอด BuildBiffPalettePlan

สร้างแผนแบบกำหนดได้และอ่านอย่างเดียวสำหรับการแทนค่า RGB ตรงและสีธีมที่แก้ไขแล้วในช่องพาเลต BIFF กายภาพทั้ง 56 ช่อง

เมธอดนี้ใช้ได้ทั้งกับ IXLSWorkbook และ TXLSXWorkbook และไม่เปลี่ยนรายการพาเลต สไตล์ เซลล์ จำนวนสีที่กำหนดเอง หรือพฤติกรรมการบันทึกเลย

ไวยากรณ์

function BuildBiffPalettePlan: TXLSBiffPalettePlan;

แผนช่อง

Slots มีรายการ 56 รายการเสมอ โดยเรียงตามลำดับดัชนีสาธารณะจาก 1 ถึง 56 และตามลำดับช่องกายภาพจาก 8 ถึง 63

ฟิลด์ความหมาย
SourceARGBสีที่ปรับมาตรฐานแล้วซึ่งจัดเก็บอยู่ในช่องพาเลตปัจจุบัน
TargetARGBสีที่เสนอสำหรับช่องนั้นโดยยังไม่ได้ใช้
DefinitionCount และ ReferenceCountผู้บริโภคแบบจัดทำดัชนีที่สืบทอดมาจาก ScanIndexedColorUsage
Kindsหมวดหมู่ผู้บริโภคแบบจัดทำดัชนีที่คุ้มครองช่องนี้
LockedTrue เมื่อช่องต้นทางต้องคงอยู่ตามเดิม
ChangedTrue เมื่อเป้าหมายที่เสนอแตกต่างจากสีต้นทาง

การแมปเป้าหมาย

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

ดูเพิ่มเติม