function RenderPageBandedToEncoder(Width, Height, BandHeight: Integer;
Encoder: TPdfBandedImageEncoder; Rotation: TRotation = ro0;
Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport;
| Width, Height | Integer. Koko sivukuvan mitat pikseleinä, ikään kuin se olisi renderöity yhtenä kappaleena |
| BandHeight | Integer. Kunkin kaistan korkeus pikseleinä. Viimeinen kaista on matalampi, kun Height ei ole sen monikerta |
| Encoder | TPdfBandedImageEncoder. Kutsujan omistama koodekiesiintymä, joka vastaanottaa kaistavirran |
| Rotation | TRotation. Sivulle sovellettava näyttökierto: ro0, ro90, ro180 tai ro270 |
| Options | TRenderOptions. Renderöintiliput |
| Color | TColor. Kunkin kaistan taustatäyttö ennen renderöintiä |
| Result | TPdfBandedImageReport. Kaistamäärät, koodatut rivit, kaistatavujen huippu, tulostetut tavut ja valmistumislippu |
Metodi ajaa saman kaistatointisilmukan kuin RenderPageBanded, mutta sovelluspalauteen sijaan se työntää jokaisen tuoreesti renderöidyn Width x kaistakorkeus -bittikartan sisäisen sillan kautta kutsujan toimittaman koodekin kolmeen virtuaalimenetelmään: BeginImage(Width, Height) suoritetaan ensin, WriteBand(BandIndex, BandTopY, Bitmap) vastaanottaa yhden kutsun per kaista ylhäältä alas, ja EndImage(Completed) sulkee kuvan
BandIndex on nollapohjainen ja BandTopY on kaistan yläreunan y-offset koko sivun pikseleinä, minkä kaistakirjoittaja tarvitsee sijoittaakseen rivit tulostetiedostoon. Bittikartta kuuluu renderöintisilmukalle ja vapautetaan heti WriteBand-kutsun paluun jälkeen, joten koodekin, joka tarvitsee pikselit itselleen, on kopioitava ne
WriteBand palauttaa arvon True jatkaakseen tai arvon False peruuttaakseen jäljellä olevat kaistat siististi. EndImage(True) kutsutaan vain, kun jokainen pyydetty rivi koodattiin; peruutettu tai epäonnistunut ajo saa EndImage(False)-kutsun, ja kyseisen epäonnistumispolun poikkeukset hiljennetään
Palautettu raportti sisältää arvon Format = pbifCustom, renderöityjen ja hyväksyttyjen kaistojen määrät kentissä BandsRendered ja BandsEncoded, hyväksytyt rivit kentässä RowsEncoded, suurimman kaistabittikartan arvona Width x kaistakorkeus x 4 tavua kentässä PeakBandBytes, Encoder.GetBytesWritten-arvon kentässä OutputBytes sekä arvon Completed = True täsmälleen silloin, kun RowsEncoded = Height
Sivun pikselitallennuksen huippu pysyy yhdessä kaistabittikartassa, joten julisteet ja tekniset piirustukset voidaan viedä ulos tulostustarkkuudella koskaan kohdistamatta koko kohdekuvaa
Nil-koodekin, ei-positiivisten mittojen tai ei-positiivisen kaistakorkeuden antaminen nostaa EPdfError-poikkeuksen
Width- ja Min(BandHeight, Height)-arvojen tulon on pysyttävä alle neljänneksessä osoitettavissa olevasta Integer-alueesta, muuten EPdfError raportoi, että kaistapuskuri ylittää osoitettavissa olevan koon
Ohita GetBytesWritten koodekin aliluokassa raportoidaksesi koodekikohtaisia tulosteen telemetriatietoja kenttään OutputBytes; perustoteutus palauttaa arvon 0
type
TRawStripEncoder = class(TPdfBandedImageEncoder)
public
procedure BeginImage(Width, Height: Integer); override;
function WriteBand(BandIndex, BandTopY: Integer;
Bitmap: TBitmap): Boolean; override;
procedure EndImage(Completed: Boolean); override;
end;
Encoder := TRawStripEncoder.Create;
try
Report := Pdf.RenderPageBandedToEncoder(4960, 7016, 512, Encoder);
LogBandedExport(Report.BandsEncoded, Report.PeakBandBytes);
finally
Encoder.Free;
end;