Класс PdfMrcCompressionSettings
Класс, содержащий настройки кодирования PDF документа со сжатием MRC.
Технология сжатия PDF MRC (смешанное растровое содержимое) используется для минимизации размера файлов PDF и PDF/A. Алгоритм сжатия PDF MRC анализирует изображение документа, находит объекты изображения и текстовые области на изображении документа, делит изображение документа на слои и сжимает каждый слой с наилучшим сжатием.
Изображение документа можно разделить на следующие слои :
- Фоновый слой - слой, содержащий объекты, которые не были классифицированы как изображения или текст.
- Слой изображений - слой, содержащий объекты изображений (компоненты непрерывного тона)
- Слой маски - слой, содержащий текст.
- Передний слой - слой, который используется для окраски текста.
Этот код C#/VB.NET показывает как сжать изображения документов, содержащих текст и изображения, с помощью алгоритма сжатия MRC и получить результирующие изображения высокого качества.
Public Shared Sub SetSetting_DocumentWithImagesHiQuality(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 60
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
public static void SetSetting_DocumentWithImagesHiQuality(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 60;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Вот C#/VB.NET код, который демонстрирует, как сжимать изображения документов, содержащих текст и изображения, с использованием алгоритма сжатия MRC и получать результирующие изображения нормального качества.
Public Shared Sub SetSetting_DocumentWithImagesNormal(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 35
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.FrontLayerCompressionSettings.JpegQuality = 25
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 400 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
public static void SetSetting_DocumentWithImagesNormal(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 35;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.FrontLayerCompressionSettings.JpegQuality = 25;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 400 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Вот C#/VB.NET код, который демонстрирует, как сжимать изображения документов, содержащих текст и изображения, с использованием алгоритма сжатия MRC и получать результирующие изображения с высокой степенью сжатия.
Public Shared Sub SetSetting_DocumentWithImagesHiCompression(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 20
settings.ImageSegmentation = New Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand()
settings.CreateImagesLayer = False
settings.HiQualityMask = False
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip
End Sub
public static void SetSetting_DocumentWithImagesHiCompression(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 20;
settings.ImageSegmentation =
new Vintasoft.Imaging.ImageProcessing.Info.ImageSegmentationCommand();
settings.CreateImagesLayer = false;
settings.HiQualityMask = false;
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip;
}
Вот C#/VB.NET код, который демонстрирует, как сжимать изображения документов, которые содержат только текст, с использованием алгоритма сжатия MRC и получать результирующие изображения с высоким качеством.
Public Shared Sub SetSetting_DocumentNoImagesHiQuality(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 30
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = True
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
public static void SetSetting_DocumentNoImagesHiQuality(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 30;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = true;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 300 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Вот C#/VB.NET код, который демонстрирует, как сжимать изображения документов, которые содержат только текст, с использованием алгоритма сжатия MRC и получать результирующие изображения нормального качества.
Public Shared Sub SetSetting_DocumentNoImagesNormal(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 25
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = True
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 350 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
public static void SetSetting_DocumentNoImagesNormal(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 25;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = true;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 350 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
Вот C#/VB.NET код, который демонстрирует, как сжимать изображения документов, которые содержат только текст, с использованием алгоритма сжатия MRC и получать результирующие изображения с высокой степенью сжатия.
Public Shared Sub SetSetting_DocumentNoImagesHiCompression(settings As Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings)
settings.CreateBackgroundLayer = True
settings.BackgroundLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg Or Vintasoft.Imaging.Pdf.PdfCompression.Zip
settings.BackgroundLayerCompressionSettings.JpegQuality = 20
settings.ImageSegmentation = Nothing
settings.CreateImagesLayer = False
settings.HiQualityMask = False
settings.MaskCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jbig2
settings.MaskCompressionSettings.Jbig2Settings.Lossy = True
settings.CreateFrontLayer = True
settings.HiQualityFrontLayer = False
settings.FrontLayerCompression = Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 450 * 3
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType = Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy
End Sub
public static void SetSetting_DocumentNoImagesHiCompression(
Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings settings)
{
settings.CreateBackgroundLayer = true;
settings.BackgroundLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg |
Vintasoft.Imaging.Pdf.PdfCompression.Zip;
settings.BackgroundLayerCompressionSettings.JpegQuality = 20;
settings.ImageSegmentation = null;
settings.CreateImagesLayer = false;
settings.HiQualityMask = false;
settings.MaskCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jbig2;
settings.MaskCompressionSettings.Jbig2Settings.Lossy = true;
settings.CreateFrontLayer = true;
settings.HiQualityFrontLayer = false;
settings.FrontLayerCompression =
Vintasoft.Imaging.Pdf.PdfCompression.Jpeg2000;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionRatio = 450 * 3;
settings.FrontLayerCompressionSettings.Jpeg2000Settings.CompressionType =
Vintasoft.Imaging.Codecs.ImageFiles.Jpeg2000.Jpeg2000CompressionType.Lossy;
}
System.Object
 Vintasoft.Imaging.Codecs.Encoders.PdfMrcCompressionSettings
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5