THotPDF.RegisterSeparationLUT-metode

 

THotPDF.RegisterSeparationLUT

THotPDF

 

Øverst
Placeholder for topic body

Erklærer et PDF 1.3+ separationsfarverum (ISO 32000-1 8.6.6.4), hvis nuancetransformation er en Funktion Type 0 samplet opslagstabel (ISO 32000-1 7.10.2); brug dette, når spot-blækfarvekurven er ikke-lineær - nuanceforløb i PANTONE Hexachrome-stil, gammakorrigerede tæthedskurver, håndtegnede tonekurver, der matcher en pressekarakterisering, sRGB-til-spotkonvertering ICC-LUT'er uden det fulde ICC-profilmaskineri; for det simple lineære forløb fra nul til et enkelt fuldstyrke farveendepunkt gælder v2.45.0RegisterSeparationindgangspunktet stadig

 

Delphi-syntaks:

function RegisterSeparationLUT(constColorantName: AnsiString;constAlternateCS: AnsiString;constSamples:array ofbyte): AnsiString;

 

C++-syntaks:

AnsiString RegisterSeparationLUT(const AnsiString& ColorantName, const AnsiString& AlternateCS, const unsigned char* Samples, int SamplesCount);

 

Beskrivelse

HotPDF kalder interntRegisterSampledFunctionfor at opbygge Funktion Type 0-strømmen med/Domain [0 1], /Rangeder dækker hver alt-CS-kanal i[0, 1], /Size [S]hvor S =Length(Samples) / M, /BitsPerSample 8 and /Order 1(lineær interpolation); funktionen er forbundet til et nyt[/Separation /ColorantName /AltCS <FuncRef>]farverums-array delt på tværs af sider, hvilket matcher layoutet som RegisterSeparation producerer – downstreamSetFillColorSpace + SetFillColorkoder ser ingen ændring i API-overfladen mellem de to variantregistreringer

 

ColorantName - PDF-navn på blækket (f.eks'PANTONE 185 C', 'CutContour', 'White'); mellemrum escaper til#20pr. PDF 1.7 7.3.5 af den eksisterende navneskriversti

AlternateCS - 'DeviceGray'(M = 1),'DeviceRGB'(M = 3) eller'DeviceCMYK'(M = 4); prøvestrømmen leverer M output-bytes pr. gitterpunkt; enhver anden værdi udløser en undtagelse

Samples - rå 8-bit prøvebytes ordnet(c0_0, c1_0, ..., cM-1_0, c0_1, ..., cM-1_S-1)for S gitterpunkterLength(Samples)skal være et positivt multiplum afM; S udledes somLength(Samples) / Mog skal være mindst 2, så funktionen har et interpolerbart område; lineær interpolation mellem gitterpunkter er standarden (PDF 1.7/Order 1).

 

Returværdi: et autogenereret farverumsnavn (Sep1, Sep2, ...); separationsposten deles med v2.45.0 RegisterSeparation-registreret, så navne stiger monotont på tværs af de to varianter; returnerer en tom streng, nårStrictVersionLocker slået til og den aktiveVersioner under PDF 1.3 (ellers opgraderes dokumentversionen automatisk til 1.3)

 

Kodeeksempel

// Register a 'HeatLUT' Separation over DeviceRGB whose tint -> RGB
// curve is a 256-sample blue -> green -> red heatmap
var
  CSName: AnsiString;
  Samples: array[0..767] of byte;     // 256 * 3 RGB
  I: Integer;
  T: Single;
begin
  HPDF.BeginDoc;
  for I := 0 to 255 do
  begin
    T := I / 255.0;
    if T < 0.5 then
    begin
      Samples[I*3 + 0] := 0;
      Samples[I*3 + 1] := byte(Round(2.0 * T * 255.0));
      Samples[I*3 + 2] := byte(Round((1.0 - 2.0*T) * 255.0));
    end
    else
    begin
      Samples[I*3 + 0] := byte(Round(2.0 * (T - 0.5) * 255.0));
      Samples[I*3 + 1] := byte(Round((1.0 - 2.0*(T - 0.5)) * 255.0));
      Samples[I*3 + 2] := 0;
    end;
  end;
  CSName := HPDF.RegisterSeparationLUT('HeatLUT', 'DeviceRGB', Samples);
  HPDF.CurrentPage.SetFillColorSpace(CSName);
  HPDF.CurrentPage.SetFillColor([0.5]);    // midpoint -> pure green
  HPDF.CurrentPage.Rectangle(100, 100, 40, 40);
  HPDF.CurrentPage.Fill;
  HPDF.EndDoc;
end;

 

Se også

RegisterSeparation, RegisterSampledFunction, RegisterDeviceN, Version, PDF-filterunderstøttelse