VintaSoft Imaging .NET SDK 14.1: Документация для .NET разработчика
Vintasoft.Imaging.Codecs.Encoders Namespace / PdfMrcCompressionSettings Class
    Класс PdfMrcCompressionSettings
    Класс, содержащий настройки кодирования PDF документа со сжатием MRC.
    Объектная модель
    PdfCompressionSettings PdfCompressionSettings PdfCompressionSettings PdfCompressionSettings ImageSegmentationCommand ProcessingCommandBase PdfMrcCompressionSettings
    Синтаксис
    'Declaration
    
    Public 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 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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