CompressImages
Obsługa obrazów, Właściwości dokumentu
Opis
Ustawia domyślny tryb kompresji stosowany do surowych danych obrazów rastrowych dodanych do dokumentu po tym wywołaniu. Ustawienie wpływa na obrazy, których piksele są przesyłane bez kompresji (BMP, surowe tablice pikseli); obrazy już skompresowane (JPEG, JPEG 2000, CCITT, JBIG2) zachowują istniejące kodowanie i są zapisywane bez zmian, ponieważ ponowna kompresja zwiększyłaby rozmiar pliku i pogorszyła jakość.
Składnia
Delphi
Function TPDFlib.CompressImages(Compress: Integer): Integer;
ActiveX
Function PDFlib::CompressImages(Compress As Long) As Long
DLL
int DLCompressImages(int InstanceID, int Compress);
Parametry
| Compress | 0 — przechowuj surowe obrazy rastrowe bez kompresji. 1 — kompresuj surowe obrazy rastrowe algorytmem Flate (filtr /FlateDecode). |
|---|
Wartości zwracane
| 0 | Parametr Compress był poza zakresem. |
|---|---|
| 1 | Ustawienie kompresji obrazów zostało zaktualizowane. |
Uwagi
Ustawienie wpływa tylko na obrazy dodane po wywołaniu. Domyślnie kompresja jest włączona. Wyłączenie kompresji bywa przydatne podczas integracji z dalszym rendererem, który nie obsługuje strumieni obrazów dekodowanych przez Flate; w zwykłym użyciu pozostaw kompresję włączoną.
Kompresja Flate jest bezstratna. Aby zastosować stratną kompresję JPEG do surowego obrazu rastrowego, przed dodaniem zakoduj źródło do formatu JPEG i użyj AddImageFromFile lub AddImageFromStream — strumień bajtów JPEG zostanie wtedy osadzony bezpośrednio z filtrem /DCTDecode.
Przykład
// Compress raw bitmaps but leave the pre-encoded JPEG as-is
PDF.CompressImages(1);
PDF.AddImageFromFile('logo.bmp'); // BMP -> flate compressed
PDF.AddImageFromFile('photo.jpg'); // JPEG bytes embedded directly (DCT)
PDF.AddImageFromFile('chart.png'); // PNG decoded -> flate compressedZobacz również
CompressContent, CompressFonts, AddImageFromFile, AddImageFromStream