function RenderPageBandedToStream(Stream: TStream; Width,
Height: Integer; const StreamOptions: TPdfBandedImageStreamOptions;
Rotation: TRotation = ro0; Options: TRenderOptions = [];
Color: TColor = clWhite): TPdfBandedImageReport;
| Stream | TStream. Zapisovatelný výstup ve vlastnictví volajícího, pozicovaný tam, kde obrázek začíná |
| StreamOptions.Format | pbifPng pro komprimované 8bitové RGB PNG nebo pbifTiff pro nekomprimované klasické TIFF pruhy little-endian |
| StreamOptions.BandHeight | Kladná výška pásu a pruhu TIFF; výchozí je 256 řádků |
| StreamOptions.CompressionLevel | Úroveň PNG zlib od 0 do 9; výchozí je 6 a TIFF ji ignoruje |
| StreamOptions.MaxOutputBytes | Pevný strop zakódovaných bajtů; nula znamená bez limitu |
| Rotation | TRotation. Otočení zobrazení aplikované na stránku |
| Options | TRenderOptions. Příznaky vykreslování |
| Color | TColor. Výplň pozadí nanesená na každý pás před vykreslením |
| Result | TPdfBandedImageReport. Počty pásů, zakódované řádky, vrcholné bajty pásu, výstupní bajty, příznak dokončení a zvolený formát |
Metoda obalí stream požadovaným vestavěným kodekem, TPdfPngBandedImageEncoder nebo TPdfTiffBandedImageEncoder, a řídí sdílenou pásovou pipeline RenderPageBandedToEncoder. Vrácený přehled nese zvolený Format místo pbifCustom
PNG kodek komprimuje každý scanline přímo do sekvenčních chunků IDAT, zatímco TIFF kodek zapisuje jeden RGB pruh na vykreslený pás a svůj image file directory připojuje za pixelová data. Oba kodeky zapisují jen dopředu a stream volajícího nikdy nepřesunují
Vrcholné úložiště pixelů stránky je jedna bitmapa BGRA Width x BandHeight místo Width x Height. Přehled vystavuje změřené PeakBandBytes, takže exportéři mohou paměťovou politiku auditovat, a OutputBytes odráží, co se do streamu skutečně zapsalo
Před přepsáním jednotlivých limitů použijte TPdfBandedImageStreamOptions.Default(pbifPng) nebo Default(pbifTiff); výchozí hodnoty jsou BandHeight = 256, CompressionLevel = 6 a MaxOutputBytes = 0
Nil stream, nekladná BandHeight nebo záporné MaxOutputBytes vyvolá EPdfError a pbifCustom se odmítne, protože je potřeba vestavěný formát PNG nebo TIFF
Když by zakódovaný obrázek překročil MaxOutputBytes, zápis vyvolá EPdfError se zprávou Encoded image exceeds the output byte budget
Pro jakýkoli jiný kontejnerový formát nebo externí kodeky použijte RenderPageBandedToEncoder s vlastním potomkem TPdfBandedImageEncoder
StreamOptions := TPdfBandedImageStreamOptions.Default(pbifTiff);
StreamOptions.BandHeight := 256;
StreamOptions.MaxOutputBytes := Int64(512) * 1024 * 1024;
Report := Pdf.RenderPageBandedToStream(OutputStream, 4960, 7016,
StreamOptions);
if not Report.Completed then
RaiseBandedExportIncomplete;