เมธอด BuildBiffPalettePlan
สร้างแผนแบบกำหนดได้และอ่านอย่างเดียวสำหรับการแทนค่า RGB ตรงและสีธีมที่แก้ไขแล้วในช่องพาเลต BIFF กายภาพทั้ง 56 ช่อง
เมธอดนี้ใช้ได้ทั้งกับ 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]);