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

MaxDPIAuflösungsschwellenwert in DPI; Bilder, deren geschätzte effektive Auflösung über diesem Wert liegt, werden resampelt. Werte unter 24 brechen den Aufruf ab
QualityJPEG-Kompressionsqualität zwischen 1 und 100 für die Neucodierung; übergeben Sie 0, um verlustfrei als PNG neu zu codieren
Filter0 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');