تنفذ CreatePdfLittleCmsColourTransform واجهة IPdfColourTransform لمخازن مكونات Gray و RGB و CMYK و ICCBased الأصلية، ولـ مساعد تحويل ألوان المستند
وفّر مسار مكتبة مطلقًا وصريحًا بمعمارية تطابق العملية؛ يجب أن تصدّر المكتبة واجهة LittleCMS 2 بتقنية cdecl، وينتج مساعد البناء المرفق هذا ABI من مصادر LittleCMS 2.19 المرخصة بـ MIT
المكتبة المبنية بإعداد Microsoft stdcall غير متوافقة مع موفر Win32؛ لا يمكن استنتاج اتفاقية الاستدعاء بثقة من أسماء التصدير غير المزخرفة
تعيد TryCreatePdfLittleCmsColourTransform تشخيصات التبعيات وتترك التحويل nil عند الفشل، دون تغيير مسار بحث العملية
يمتلك كل استدعاء سياقه وملفاته اللونية وتحويله الأصلي؛ يمكن مشاركة الموفر، لكن يجب إبقاء مخازن العينات دون تعديل طوال الاستدعاء
تحتوي المخازن بكسلات كاملة ومتراصة ذات 1 أو 3 أو 4 مكونات، ببايتات 8-bit أو كلمات غير موقعة 16-bit بترتيب المنصة؛ يحول مساعد المستند عينات PDF ذات ترتيب big-endian قبل استدعاء الموفر
يستخدم DeviceRGB بلا ملف لوني sRGB، ويستخدم DeviceGray بلا ملف لوني ملف D50 gamma-2.2؛ يحتاج DeviceCMYK و ICCBased إلى ملف ICC مصدر صريح، ويجب أن يطابق فضاء بيانات كل ملف عدد مكوناته المعلن
الأهداف هي DeviceGray أو DeviceRGB أو DeviceCMYK مع ملف ICC مطابق؛ يُقبل غياب ملف الهدف فقط مع افتراضي Gray و RGB الخاصين بالموفر
يختار Default القصد اللوني النسبي وتعويض النقطة السوداء و 256 MiB لبايتات العينات و 16 MiB لبايتات ملفات ICC؛ سقف الملفات اللونية 16 MiB
يُفحص الإلغاء قبل التهيئة الأصلية وبعدها وبين كتل لا تتجاوز 65,536 بكسل؛ فتح الملفات اللونية ومعالجة كتلة تحويل واحدة لا يملكان Callback للإلغاء
يفرغ فشل التحويل مخزن الهدف ويرفع EPdfColourBackendError؛ يحتفظ الإلغاء بـ EPdfOperationCancelled
تم التحقق من تحويلات LittleCMS 2.19 الفعلية ومن حفظ PDF وإعادة فتحه وتصييره باستخدام Delphi و FPC على Win32 و Win64
type
EPdfColourBackendError = class(EPdfProduction);
TPdfLittleCmsOptions = record
RenderingIntent: Cardinal;
BlackPointCompensation: Boolean;
MaxSampleBytes: Integer;
MaxProfileBytes: Integer;
CancellationToken: IPdfCancellationToken;
class function Default: TPdfLittleCmsOptions; static;
end;
function CreatePdfLittleCmsColourTransform(const LibraryPath: string;
const Options: TPdfLittleCmsOptions): IPdfColourTransform;
function TryCreatePdfLittleCmsColourTransform(const LibraryPath: string;
const Options: TPdfLittleCmsOptions; out Transform: IPdfColourTransform;
out ErrorText: string): Boolean;
function CreatePdfLittleCmsGrayProfile(const LibraryPath: string;
Gamma: Double = 2.2): TBytes;
function CreatePdfLittleCmsSrgbProfile(const LibraryPath: string): TBytes;
تقبل CreatePdfLittleCmsGrayProfile قيمة gamma محدودة بين 0.1 و 10؛ يسلسل المساعدان ملفات ICC أصلية حقيقية لتضمينها أو إعادة استخدامها
pwsh Native/ColourLittleCms/Build-LittleCms.ps1 -SourceDirectory C:/deps/lcms2.19 -OutputDirectory C:/deps/lcms-bin -Platform Win64
يحتاج المساعد إلى MinGW GCC متوافق وإلى نسخة مصادر LittleCMS 2.19 موجودة، وينسخ إشعارات الترخيص المطلوبة إلى مجلد الإخراج، ولا ينزّل أو يثبت التبعيات