VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Codecs.Encoders Namespace / PdfMrcCompressionSettings Class
    Класс PdfMrcCompressionSettings
    В этом разделе
    Класс, содержащий настройки кодирования PDF документа со сжатием MRC.
    Объектная модель
    PdfCompressionSettings PdfCompressionSettings PdfCompressionSettings PdfCompressionSettings ImageSegmentationCommand ProcessingCommandBase PdfMrcCompressionSettings
    Синтаксис
    'Declaration
    
    Public Class PdfMrcCompressionSettings
    
    
    public class PdfMrcCompressionSettings
    
    
    public __gc class PdfMrcCompressionSettings
    
    
    public ref class PdfMrcCompressionSettings
    
    
    Ремарки

    Технология сжатия 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

    Смотрите также