مستندات HotXLS

الأسلوب NearestIndexedColor

يجد أقرب مدخل بين خانات لوحة الألوان الفعلية من 8 إلى 63 ويعيد قيمة ColorIndex العامة والخانة الفعلية معًا

يتوفر هذا الأسلوب في IXLSWorkbook وTXLSXWorkbook معًا، ولا يعدّل حالة لوحة الألوان أو المصنف

البنية

function NearestIndexedColor(
  AArgb: LongWord;
  out AMatch: TXLSNearestIndexedColorMatch): Boolean;

الإدخال

يقبل AArgb قيمة $00RRGGBB بعمق 24 بت أو قيمة $FFRRGGBB معتمة

يُطبَّع بايت ألفا الصفري إلى $FF؛ وتُرفض القيم شبه الشفافة لأن مدخلات لوحة ألوان المصنف المفهرسة معتمة

النتيجة

الحقلالمعنى
InputARGBلون الإدخال المعتم المطبَّع
ColorIndexفهرس اللوحة العام من 1 إلى 56
PaletteSlotخانة اللوحة الفعلية بتنسيق BIFF أو OOXML من 8 إلى 63
ARGBاللون المعتم المطبَّع المخزَّن في خانة اللوحة المختارة
DistanceSquaredالمسافة الإقليدية المربعة في فضاء الألوان OKLab
ExactMatchصحيح عندما تكون قنوات RGB للمدخل المختار مطابقة لقنوات الإدخال المطبَّع

تعيد الدالة القيمة false عند إدخال شبه شفاف أو عندما تكون ذاكرة مطابقة اللوحة غير متاحة؛ ويهيئ الفشل ColorIndex إلى الصفر وPaletteSlot إلى -1

عقد المطابقة

يخزّن كل مصنف مؤقتًا قيم ARGB المطبَّعة وإحداثيات OKLab لمدخلات لوحته الفعلية الـ 56

يعيد تصفير اللوحة بناء الذاكرة المؤقتة كاملةً، والتغيير الفعلي في خانة واحدة يحدّث تلك الخانة المخزنة فقط

يحوّل كل استعلام الإدخال مرة واحدة ويجري مسحًا واحدًا ثابتًا للمدخلات الـ 56 دون سجل استعلامات أو نمو غير محدود للذاكرة المؤقتة

تختار المسافات المتساوية أدنى فهرس عام، بما في ذلك ألوان اللوحة المكررة، فتبقى النتائج حتمية عبر المحركات والتشغيلات

لا تعد الرموز التلقائية والنظامية ورموز الألوان غير الصالحة مرشحة؛ استخدم ResolveIndexedColor لتصنيف تلك القيم

مثال

if Workbook.NearestIndexedColor($FF13579B, Match) then
begin
  PaletteIndex := Match.ColorIndex;
  if Match.ExactMatch then
    UseExactPaletteColor(Match.ARGB);
end;

انظر أيضًا