DownsampleImages
Dokumentverwaltung, Bilder
Beschreibung
Reduziert die Auflösung eingebetteter Bild-XObjecte, deren effektive Auflösung MaxDPI überschreitet. Jedes Kandidatenbild wird decodiert, unter Beibehaltung seines Seitenverhältnisses resampelt und als DCTDecode (JPEG) neu codiert, wenn Quality größer als 0 ist, oder als verlustfreies FlateDecode (PNG), wenn Quality 0 ist; der Bild-Stream sowie die Einträge /Filter, /Width und /Height werden an Ort und Stelle neu geschrieben
Syntax
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;Parameter
| MaxDPI | Auflösungsschwellenwert in DPI; Bilder, deren geschätzte effektive Auflösung über diesem Wert liegt, werden resampelt. Werte unter 24 brechen den Aufruf ab |
|---|---|
| Quality | JPEG-Kompressionsqualität zwischen 1 und 100 für die Neucodierung; übergeben Sie 0, um verlustfrei als PNG neu zu codieren |
| Filter | 0 wählt den Box-Filter, der Quell-Pixelblöcke mittelt; jeder andere Wert wählt bilineares Resampling |
Rückgabewerte
Die Anzahl der neu geschriebenen Bild-XObjecte oder 0, wenn MaxDPI unter 24 liegt oder kein Bild den Schwellenwert überschritten hat
Hinweise
Die effektive Auflösung wird aus der deklarierten Pixelbreite des Bildes gegenüber einer Seite in Letter-Breite geschätzt, sodass der Durchlauf konservativ ausfällt und Bilder in Druckqualität im Zweifel unangetastet bleiben
Bilder unter 8 x 8 deklarierten Pixeln, Bilder, die sich nicht decodieren lassen, und Bilder, deren resampelte Größe nicht kleiner als das Original wäre, werden übersprungen, ohne den Aufruf fehlschlagen zu lassen
Beispiel
PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');