|
THotPDF.RegisterFreeFormGouraudShading
|
Vrh |
|
Deklariše PDF 1.3+ free-form Gouraud-shaded triangle mesh shading (ISO 32000-1 8.7.4.5.4, /ShadingType 4) i smešta ga kao inline Pattern Type 2 unos u rečnik Resources/Pattern stranice. Vratilo se ime šablona koje se koristi sa THPDFPage.SetFillPattern ili THPDFPage.SetStrokePattern za crtanje vektorskog gradijenta čija se boja glatko menja po svakom trouglu
Delphi syntax: function RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax: Single; NumComponents: Integer; const Vertices: array of Extended): AnsiString;
C++ syntax: AnsiString RegisterFreeFormGouraudShading(float XMin, float YMin, float XMax, float YMax, int NumComponents, const Extended* Vertices, int VertexElementCount);
Opis Sjenčenje se emituje kao jedan indirektni tok sa /ShadingType 4, /BitsPerCoordinate 16, /BitsPerComponent 8 i /BitsPerFlag 8. Svaki vrh je zapisivan redom toka kao 8 + NumComponents - 3 bajta - jedno-bajtni flag (uvek 0 za nezavisne trouglove), 2 big-endian bajta za X koordinatu, 2 big-endian bajta za Y koordinatu i NumComponents 8-bitne komponente boje. Niz /Decode mapira 16-bitne koordinate nazad u prosleđeni [XMin, XMax] x [YMin, YMax] user-space pravougaonik i svaku komponentu boje u opseg [0, 1] Temena se obrađuju po tri kao nezavisni trouglovi. Broj Extended vrednosti koje prosledite u Vertices mora biti tačno (2 + NumComponents) * 3 * TriangleCount; pomoćni kod baca izuzetak kada dužina niza nije višekratnik koraka ili kada broj temena nije višekratnik broja tri
XMin, YMin, XMax, YMax - korisnički pravougaonik koji ograničava mrežu temena. Ove četiri vrednosti postaju prva četiri unosa /Decode da bi se 16-bitno kodirane koordinate temena vratile u PDF korisnički prostor. Postavite ih u iste korisničke koordinate u kojima ćete crtati - za HotPDF screen-coordinate Rectangle na (X, Y, W, H) odgovarajući PDF user-space pravougaonik je (X, PageHeight - Y - H) do (X + W, PageHeight - Y) NumComponents - broj komponenti boje po temenu. Prosledite 1 za DeviceGray, 3 za DeviceRGB ili 4 za DeviceCMYK. Svaka druga vrednost prijavljuje izuzetak. /ColorSpace unos rezultujućeg shading-a se podešava u skladu s tim Temena - ravan niz Extended vrednosti u redosledu (X, Y, c1...cN) koji se ponavlja za svako teme. Koordinate su klampovane u okvir [XMin, XMax] x [YMin, YMax] i kvantizovane na 16-bitne cele brojeve; komponente boja su klampovane u [0, 1] i kvantizovane na 8-bitne cele brojeve. Susedni trouglovi koji dele ivicu moraju ponoviti zajednička temena doslovno, jer registrovani shading koristi zastavicu 0 za svako teme (nezavisni trouglovi)
Povratna vrednost: automatski generisano ime uzorka (Sh1, Sh2, ...) registrovano u Resources/Pattern rečniku tekuće stranice. Vraća prazan niz kada je StrictVersionLock uključen a aktivna Version je ispod PDF 1.3 (inače se verzija dokumenta automatski podiže na 1.3)
Code Example
Vidi i RegisterDeviceN, RegisterSeparation, RegisterLabColorSpace, Version, PDF Filter Support
|