متد 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]);