CompressImages
Обработка изображений, свойства документа
Описание
Задаёт режим сжатия по умолчанию для необработанных растровых данных изображений, добавляемых в документ после этого вызова. Настройка касается изображений с незапакованными пикселями (BMP, сырые массивы); уже сжатые (JPEG, JPEG 2000, CCITT, JBIG2) сохраняют кодировку и пишутся как есть — пересжатие раздувает файл и портит качество
Синтаксис
Delphi
Function TPDFlib.CompressImages(Compress: Integer): Integer;
ActiveX
Function PDFlib::CompressImages(Compress As Long) As Long
DLL
int DLCompressImages(int InstanceID, int Compress);
Параметры
| Compress | 0 — store raw raster images uncompressed. 1 — flate-compress raw raster images ( /FlateDecode filter). |
|---|
Возвращаемые значения
| 0 | Параметр Compress вне диапазона |
|---|---|
| 1 | Настройка сжатия изображений обновлена |
Примечания
Настройка влияет только на изображения, добавляемые после вызова. По умолчанию сжатие включено. Отключить сжатие изредка полезно при интеграции с нижестоящим рендерером, который не поддерживает flate-декодированные потоки изображений; при обычном использовании оставьте сжатие включенным
Сжатие Flate не имеет потерь. Для сжатия с потерями (JPEG) необработанного растрового изображения закодируйте источник в JPEG до добавления и используйте AddImageFromFile или AddImageFromStream — байтовый поток JPEG затем встраивается напрямую с фильтром /DCTDecode.
Пример
// 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 compressedСм. также
CompressContent, CompressFonts, AddImageFromFile, AddImageFromStream