Packages

 

com.aspose.imaging.fileformats.djvu

Class DjvuImage

  • All Implemented Interfaces:
    IObjectWithBounds, IRasterImageArgb32PixelLoader, IRasterImageRawDataLoader, com.aspose.imaging_internal.IPixelsSaver, com.aspose.ms.System.IDisposable, Closeable, AutoCloseable


    public final class DjvuImage
    extends RasterImage

    DjvuDocument class

    Code example:

    This example shows how to load a DJVU image from a file stream.


    String dir = "c:\\temp\\";
    
    // Load a DJVU image from a file stream.
    java.io.InputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
    com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
    try {
        // Save each page as an individual PNG image.
        for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
            // Generate a file name based on the page number.
            String fileName = String.format("sample.%s.png", djvuPage.getPageNumber());
            djvuPage.save(dir + fileName, new com.aspose.imaging.imageoptions.PngOptions());
        }
    } finally {
        djvuImage.dispose();
        stream.close();
    }
    

    • Field Detail

      • PropertyChanged

        public final com.aspose.ms.lang.Event<com.aspose.ms.System.ComponentModel.PropertyChangedEventHandler> PropertyChanged
    • Constructor Detail

      • DjvuImage

        public DjvuImage(InputStream stream)

        Initializes a new instance of the DjvuImage class.

        Parameters:
        stream - The stream.
        Throws:
        DjvuImageException - Stream is empty
        Code example:

        This example shows how to load a DJVU image from a file stream.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.InputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
        try {
            // Save each page as an individual PNG image.
            for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                // Generate a file name based on the page number.
                String fileName = String.format("sample.%s.png", djvuPage.getPageNumber());
                djvuPage.save(dir + fileName, new com.aspose.imaging.imageoptions.PngOptions());
            }
        } finally {
            djvuImage.dispose();
            stream.close();
        }
        

      • DjvuImage

        public DjvuImage(InputStream stream,
                         LoadOptions loadOptions)

        Initializes a new instance of the DjvuImage class.

        Parameters:
        stream - The stream to load from.
        loadOptions - The load options.
        Throws:
        DjvuImageException - Stream is empty
        Code example:

        This example shows how to load a DJVU image from a file stream to stay within the specified memory limit.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.InputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        try {
            // The max allowed size for all internal buffers is 1MB.
            com.aspose.imaging.LoadOptions loadOptions = new com.aspose.imaging.LoadOptions();
            loadOptions.setBufferSizeHint(1 * 1024 * 1024);
        
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream, loadOptions);
            try {
                // Save each page as an individual PNG image.
                for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                    // Generate a file name based on the page number.
                    String fileName = String.format("sample.%s.png", djvuPage.getPageNumber());
                    djvuPage.save(dir + fileName, new com.aspose.imaging.imageoptions.PngOptions());
                }
            } finally {
                djvuImage.dispose();
            }
        } finally {
            stream.close();
        }
        

      • DjvuImage

        public DjvuImage(com.aspose.ms.System.IO.Stream stream,
                         LoadOptions loadOptions)
    • Method Detail

      • getIdentifier

        public int getIdentifier()

        Gets the unique identifier for the document

        Returns:
        The identifier.
      • getPages

        public DjvuPage[] getPages()

        Gets the pages for the document

        Returns:
        The pages.
        Code example:

        This example shows how to load a DJVU image from a file stream.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.InputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
        try {
            // Save each page as an individual PNG image.
            for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                // Generate a file name based on the page number.
                String fileName = String.format("sample.%s.png", djvuPage.getPageNumber());
                djvuPage.save(dir + fileName, new com.aspose.imaging.imageoptions.PngOptions());
            }
        } finally {
            djvuImage.dispose();
            stream.close();
        }
        

      • getActivePage

        public DjvuPage getActivePage()

        Gets or sets the currently active page

        Returns:
        The active page.
        Throws:
        DjvuImageException - There is no active page selected.
        Code example:

        This example shows how to load a DJVU image from a file stream and print information about the pages.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.FileInputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
            try {
                System.out.println("The total number of pages: " + djvuImage.getPages().length);
                System.out.println("The active page number:    " + djvuImage.getActivePage().getPageNumber());
                System.out.println("The first page number:     " + djvuImage.getFirstPage().getPageNumber());
                System.out.println("The last page number:      " + djvuImage.getLastPage().getPageNumber());
        
                for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                    System.out.println("--------------------------------------------------");
                    System.out.println("Page number:     " + djvuPage.getPageNumber());
                    System.out.println("Page size:       " + djvuPage.getSize());
                    System.out.println("Page raw format: " + djvuPage.getRawDataFormat());
                }
            } finally {
                djvuImage.dispose();
            }
        } finally {
            stream.close();
        }
        
        //The output may look like this:
        //The total number of pages: 2
        //The active page number:    1
        //The first page number:     1
        //The last page number:      2
        //--------------------------------------------------
        //Page number:     1
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        //--------------------------------------------------
        //Page number:     2
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        

      • setActivePage

        public void setActivePage(DjvuPage value)

        Gets or sets the currently active page

        Parameters:
        value - The active page.
        Throws:
        DjvuImageException - When the active page cannot be set as it belongs to another image.
      • getFirstPage

        public DjvuPage getFirstPage()

        Gets the first page of the document

        Returns:
        The first page.
        Throws:
        DjvuImageException - The first page can not be found
        Code example:

        This example shows how to load a DJVU image from a file stream and print information about the pages.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.FileInputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
            try {
                System.out.println("The total number of pages: " + djvuImage.getPages().length);
                System.out.println("The active page number:    " + djvuImage.getActivePage().getPageNumber());
                System.out.println("The first page number:     " + djvuImage.getFirstPage().getPageNumber());
                System.out.println("The last page number:      " + djvuImage.getLastPage().getPageNumber());
        
                for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                    System.out.println("--------------------------------------------------");
                    System.out.println("Page number:     " + djvuPage.getPageNumber());
                    System.out.println("Page size:       " + djvuPage.getSize());
                    System.out.println("Page raw format: " + djvuPage.getRawDataFormat());
                }
            } finally {
                djvuImage.dispose();
            }
        } finally {
            stream.close();
        }
        
        //The output may look like this:
        //The total number of pages: 2
        //The active page number:    1
        //The first page number:     1
        //The last page number:      2
        //--------------------------------------------------
        //Page number:     1
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        //--------------------------------------------------
        //Page number:     2
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        

      • getLastPage

        public DjvuPage getLastPage()

        Gets the last page of the document

        Returns:
        The last page.
        Throws:
        DjvuImageException - The last page can not be found
        Code example:

        This example shows how to load a DJVU image from a file stream and print information about the pages.


        String dir = "c:\\temp\\";
        
        // Load a DJVU image from a file stream.
        java.io.FileInputStream stream = new java.io.FileInputStream(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = new com.aspose.imaging.fileformats.djvu.DjvuImage(stream);
            try {
                System.out.println("The total number of pages: " + djvuImage.getPages().length);
                System.out.println("The active page number:    " + djvuImage.getActivePage().getPageNumber());
                System.out.println("The first page number:     " + djvuImage.getFirstPage().getPageNumber());
                System.out.println("The last page number:      " + djvuImage.getLastPage().getPageNumber());
        
                for (com.aspose.imaging.fileformats.djvu.DjvuPage djvuPage : djvuImage.getPages()) {
                    System.out.println("--------------------------------------------------");
                    System.out.println("Page number:     " + djvuPage.getPageNumber());
                    System.out.println("Page size:       " + djvuPage.getSize());
                    System.out.println("Page raw format: " + djvuPage.getRawDataFormat());
                }
            } finally {
                djvuImage.dispose();
            }
        } finally {
            stream.close();
        }
        
        //The output may look like this:
        //The total number of pages: 2
        //The active page number:    1
        //The first page number:     1
        //The last page number:      2
        //--------------------------------------------------
        //Page number:     1
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        //--------------------------------------------------
        //Page number:     2
        //Page size:       { Width = 2481, Height = 3508}
        //Page raw format: RgbIndexed1Bpp, used channels: 1
        

      • getNextPage

        public DjvuPage getNextPage()

        Gets the next page of the document

        Returns:
        The next page.
        Throws:
        DjvuImageException - The next page can not be found
      • getPreviousPage

        public DjvuPage getPreviousPage()

        Gets the previous page of the document

        Returns:
        The previous page.
        Throws:
        DjvuImageException - The previous page can not be found
      • getBitsPerPixel

        public int getBitsPerPixel()

        Gets the image bits per pixel count.

        Specified by:
        getBitsPerPixel in class Image
        Returns:
        The image bits per pixel count.
      • isCached

        public final boolean isCached()

        Gets a value indicating whether object's data is cached currently and no data readig is required.

        Specified by:
        isCached in class DataStreamSupporter
        Returns:
        true if object's data is cached; otherwise, false.
      • getImageOpacity

        public float getImageOpacity()

        Gets opacity of this image. 0 = fully transparent, 1 = fully opaque.

        Overrides:
        getImageOpacity in class RasterImage
        Returns:
        The opacity value between 0.0 (fully transparent) and 1.0 (fully opaque).
      • getFileFormat

        public long getFileFormat()

        Gets a value of file format

        Overrides:
        getFileFormat in class Image
      • loadDocument

        public static DjvuImage loadDocument(InputStream stream)

        Loads the document.

        Parameters:
        stream - The stream.
        Returns:
        Loaded djvu document
      • loadDocument

        public static DjvuImage loadDocument(InputStream stream,
                                             LoadOptions loadOptions)

        Loads the document.

        Parameters:
        stream - The stream.
        loadOptions - The load options.
        Returns:
        Loaded djvu document
      • resize

        public void resize(int newWidth,
                           int newHeight,
                           int resizeType)

        Resizes the image.

        Overrides:
        resize in class RasterImage
        Parameters:
        newWidth - The new width.
        newHeight - The new height.
        resizeType - The resize type.
        Code example:

        This example loads a DJVU image and resizes it using various resizing methods.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.fileformats.djvu.DjvuImage image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Nearest Neighbour resampling.
            image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with default options.
            image.save(dir + "upsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Nearest Neighbour resampling.
            image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with default options.
            image.save(dir + "downsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Bilinear resampling.
            image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with default options.
            image.save(dir + "upsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Bilinear resampling.
            image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with default options.
            image.save(dir + "downsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • resize

        public void resize(int newWidth,
                           int newHeight,
                           ImageResizeSettings settings)

        Resizes the image with extended options.

        Overrides:
        resize in class RasterImage
        Parameters:
        newWidth - The new width.
        newHeight - The new height.
        settings - The resize settings.
        Code example:

        This example loads a DJVU image and resizes it using various resizing settings.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.ImageResizeSettings resizeSettings = new com.aspose.imaging.ImageResizeSettings();
        
        // The adaptive algorithm based on weighted and blended rational function and lanczos3 interpolation.
        resizeSettings.setMode(com.aspose.imaging.ResizeType.AdaptiveResample);
        
        // The small rectangular filter
        resizeSettings.setFilterType(com.aspose.imaging.ImageFilterType.SmallRectangular);
        
        // The number of colors in the palette.
        resizeSettings.setEntriesCount(256);
        
        // The color quantization is not used
        resizeSettings.setColorQuantizationMethod(com.aspose.imaging.ColorQuantizationMethod.None);
        
        // The euclidian method
        resizeSettings.setColorCompareMethod(com.aspose.imaging.ColorCompareMethod.Euclidian);
        
        com.aspose.imaging.Image image = (com.aspose.imaging.Image) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Scale down by 2 times using adaptive resampling.
            djvuImage.resize(image.getWidth() / 2, image.getHeight() / 2, resizeSettings);
        
            // Save to PNG
            djvuImage.save(dir + "downsample.adaptive.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • resizeHeightProportionally

        public void resizeHeightProportionally(int newHeight,
                                               int resizeType)

        Resizes the height proportionally.

        Overrides:
        resizeHeightProportionally in class Image
        Parameters:
        newHeight - The new height.
        resizeType - Type of the resize.
        Code example:

        This example loads a DJVU image and resizes it proportionally using various resizing methods. Only the height is specified, the width is calculated automatically.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.fileformats.djvu.DjvuImage image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Nearest Neighbour resampling.
            image.resizeHeightProportionally(image.getHeight() * 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with the default options.
            image.save(dir + "upsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Nearest Neighbour resampling.
            image.resizeHeightProportionally(image.getHeight() / 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with the default options.
            image.save(dir + "downsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Bilinear resampling.
            image.resizeHeightProportionally(image.getHeight() * 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with the default options.
            image.save(dir + "upsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Bilinear resampling.
            image.resizeHeightProportionally(image.getHeight() / 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with the default options.
            image.save(dir + "downsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • resizeWidthProportionally

        public void resizeWidthProportionally(int newWidth,
                                              int resizeType)

        Resizes the width proportionally.

        Overrides:
        resizeWidthProportionally in class Image
        Parameters:
        newWidth - The new width.
        resizeType - Type of the resize.
        Code example:

        This example loads a DJVU image and resizes it proportionally using various resizing methods. Only the width is specified, the height is calculated automatically.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.fileformats.djvu.DjvuImage image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Nearest Neighbour resampling.
            image.resizeWidthProportionally(image.getWidth() * 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with the default options.
            image.save(dir + "upsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Nearest Neighbour resampling.
            image.resizeWidthProportionally(image.getWidth() / 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
        
            // Save to PNG with the default options.
            image.save(dir + "downsample.nearestneighbour.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale up by 2 times using Bilinear resampling.
            image.resizeWidthProportionally(image.getWidth() * 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with the default options.
            image.save(dir + "upsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // Scale down by 2 times using Bilinear resampling.
            image.resizeWidthProportionally(image.getWidth() / 2, com.aspose.imaging.ResizeType.BilinearResample);
        
            // Save to PNG with the default options.
            image.save(dir + "downsample.bilinear.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • crop

        public void crop(Rectangle rectangle)

        Cropping the image.

        Overrides:
        crop in class RasterImage
        Parameters:
        rectangle - The rectangle.
        Code example:

        The following example crops a DJVU image. The cropping area is be specified via Aspose.Imaging.Rectangle.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Crop the image. The cropping area is the rectangular central area of the image.
            com.aspose.imaging.Rectangle area = new com.aspose.imaging.Rectangle(
                    djvuImage.getWidth() / 4, djvuImage.getHeight() / 4, djvuImage.getWidth() / 2, djvuImage.getHeight() / 2);
            djvuImage.crop(area);
        
            // Save the cropped image to PNG
            djvuImage.save(dir + "sample.Crop.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • rotateFlip

        public void rotateFlip(int rotateFlipType)

        Rotates, flips, or rotates and flips the Active frame only.

        Specified by:
        rotateFlip in class Image
        Parameters:
        rotateFlipType - The rotate flip type.
        Code example:

        This example loads a DJVU image, rotates it by 90 degrees clockwise and optionally flips the image horizontally and(or) vertically.


        String dir = "c:\\temp\\";
        
        int[] rotateFlipTypes = new int[]
                {
                        com.aspose.imaging.RotateFlipType.Rotate90FlipNone,
                        com.aspose.imaging.RotateFlipType.Rotate90FlipX,
                        com.aspose.imaging.RotateFlipType.Rotate90FlipXY,
                        com.aspose.imaging.RotateFlipType.Rotate90FlipY,
                };
        
        for (int rotateFlipType : rotateFlipTypes) {
            // Rotate, flip and save to the output file.
            com.aspose.imaging.fileformats.djvu.DjvuImage image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
            try {
                image.rotateFlip(rotateFlipType);
                image.save(dir + "sample." + rotateFlipType + ".png", new com.aspose.imaging.imageoptions.PngOptions());
            } finally {
                image.dispose();
            }
        }
        

      • grayscale

        public void grayscale()

        Transformation of an image to its grayscale representation

        Overrides:
        grayscale in class RasterImage
        Code example:

        The following example transforms a colored DJVU image to its grayscale representation. Grayscale images are composed exclusively of shades of gray and carry only intensity information.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            djvuImage.grayscale();
            djvuImage.save(dir + "sample.Grayscale.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • binarizeFixed

        public void binarizeFixed(byte threshold)

        Binarization of an image with predefined threshold

        Overrides:
        binarizeFixed in class RasterImage
        Parameters:
        threshold - Threshold value. If corresponding gray value of a pixel is greater than threshold, a value of 255 will be assigned to it, 0 otherwise.
        Code example:

        The following example binarizes a DJVU image with the predefined threshold. Binarized images contain only 2 colors - black and white.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Binarize the image with a threshold value of 127.
            // If a corresponding gray value of a pixel is greater than 127, a value of 255 will be assigned to it, 0 otherwise.
            djvuImage.binarizeFixed((byte) 127);
            djvuImage.save(dir + "sample.BinarizeFixed.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • binarizeOtsu

        public void binarizeOtsu()

        Binarization of an image with Otsu thresholding

        Overrides:
        binarizeOtsu in class RasterImage
        Code example:

        The following example binarizes a DJVU image with Otsu thresholding. Binarized images contain only 2 colors - black and white.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Binarize the image with Otsu thresholding.
            djvuImage.binarizeOtsu();
            djvuImage.save(dir + "sample.BinarizeOtsu.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • binarizeBradley

        public void binarizeBradley(double brightnessDifference,
                                    int windowSize)

        Binarization of an image using Bradley's adaptive thresholding algorithm using the integral image thresholding

        Overrides:
        binarizeBradley in class RasterImage
        Parameters:
        brightnessDifference - The brightness difference between pixel and the average of an s x s window of pixels centered around this pixel.
        windowSize - The size of s x s window of pixels centered around this pixel
        Code example:

        The following example binarizes a DJVU image with Bradley's adaptive thresholding algorithm with the specified window size. Binarized images contain only 2 colors - black and white.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Binarize the image with a brightness difference of 5. The brightness is a difference between a pixel and the average of an 10 x 10 window of pixels centered around this pixel.
            djvuImage.binarizeBradley(5, 10);
            djvuImage.save(dir + "sample.BinarizeBradley5_10x10.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • binarizeBradley

        public void binarizeBradley(double brightnessDifference)

        Binarization of an image using Bradley's adaptive thresholding algorithm using the integral image thresholding

        Overrides:
        binarizeBradley in class RasterImage
        Parameters:
        brightnessDifference - The brightness difference between pixel and the average of an s x s window of pixels centered around this pixel.
      • adjustBrightness

        public void adjustBrightness(int brightness)

        Adjust of a brightness for image.

        Overrides:
        adjustBrightness in class RasterImage
        Parameters:
        brightness - Brightness value.
        Code example:

        The following example performs brightness correction of a DJVU image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Set the brightness value. The accepted values of brightness are in the range [-255, 255].
            djvuImage.adjustBrightness(50);
            djvuImage.save(dir + "sample.AdjustBrightness.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • adjustContrast

        public void adjustContrast(float contrast)

        Image contrasting

        Overrides:
        adjustContrast in class RasterImage
        Parameters:
        contrast - Contrast value (in range [-100; 100])
        Code example:

        The following example performs contrast correction of a DJVU image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Set the contrast value. The accepted values of contrast are in the range [-100f, 100f].
            djvuImage.adjustContrast(50f);
            djvuImage.save(dir + "sample.AdjustContrast.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • adjustGamma

        public void adjustGamma(float gammaRed,
                                float gammaGreen,
                                float gammaBlue)

        Gamma-correction of an image.

        Overrides:
        adjustGamma in class RasterImage
        Parameters:
        gammaRed - Gamma for red channel coefficient
        gammaGreen - Gamma for green channel coefficient
        gammaBlue - Gamma for blue channel coefficient
        Code example:

        The following example performs gamma-correction of a DJVU image applying different coefficients for color components.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Set individual gamma coefficients for red, green and blue channels.
            djvuImage.adjustGamma(1.5f, 2.5f, 3.5f);
            djvuImage.save(dir + "sample.AdjustGamma.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • adjustGamma

        public void adjustGamma(float gamma)

        Gamma-correction of an image.

        Overrides:
        adjustGamma in class RasterImage
        Parameters:
        gamma - Gamma for red, green and blue channels coefficient
        Code example:

        The following example performs gamma-correction of a DJVU image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Set gamma coefficient for red, green and blue channels.
            djvuImage.adjustGamma(2.5f);
            djvuImage.save(dir + "sample.AdjustGamma.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • rotateFlipAll

        public void rotateFlipAll(int rotateFlip)

        Rotates the flip all frames in image.

        Parameters:
        rotateFlip - The rotate flip type.
      • rotate

        public void rotate(float angle,
                           boolean resizeProportionally,
                           Color backgroundColor)

        Rotate image around the center.

        Overrides:
        rotate in class RasterImage
        Parameters:
        angle - The rotate angle in degrees. Positive values will rotate clockwise.
        resizeProportionally - if set to true you will have your image size changed according to rotated rectangle (corner points) projections in other case that leaves dimensions untouched and only internal image contents are rotated.
        backgroundColor - Color of the background.
      • normalizeAngle

        public void normalizeAngle(boolean resizeProportionally,
                                   Color backgroundColor)

        Normalizes the angle. This method is applicable to scanned text documents to get rid of the skewed scan. This method uses RasterImage.getSkewAngle() and RasterImage.rotate(float,boolean,Color) methods.

        Overrides:
        normalizeAngle in class RasterImage
        Parameters:
        resizeProportionally - if set to true you will have your image size changed according to rotated rectangle (corner points) projections in other case that leaves dimensions untouched and only internal image contents are rotated.
        backgroundColor - Color of the background.
      • cacheData

        public final void cacheData()

        Caches the data and ensures no additional data loading will be performed from the underlying DataStreamSupporter.DataStreamContainer.

        Specified by:
        cacheData in class DataStreamSupporter
        Code example:

        The following example shows how to cache all pages of a DJVU image.


        String dir = "c:\\temp\\";
        
        // Load an image from a DJVU file.
        com.aspose.imaging.fileformats.djvu.DjvuImage image = (com.aspose.imaging.fileformats.djvu.DjvuImage) com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            // This call caches all the pages so that no additional data loading will be performed from the underlying data stream.
            image.cacheData();
        
            // Or you can cache the pages individually.
            for (com.aspose.imaging.fileformats.djvu.DjvuPage page : image.getPages()) {
                page.cacheData();
            }
        } finally {
            image.dispose();
        }
        

      • dither

        public void dither(int ditheringMethod,
                           int bitsCount,
                           IColorPalette customPalette)

        Performs dithering on the current image.

        Specified by:
        dither in class RasterImage
        Parameters:
        ditheringMethod - The dithering method.
        bitsCount - The final bits count for dithering.
        customPalette - The custom palette for dithering.
        Code example:

        The following example loads a DJVU image and performs threshold and floyd dithering using different palette depth.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage dicomImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Perform threshold dithering using 4-bit color palette which contains 16 colors.
            // The more bits specified the higher quality and the bigger size of the output image.
            // Note that only 1-bit, 4-bit and 8-bit palettes are supported at the moment.
            dicomImage.dither(com.aspose.imaging.DitheringMethod.ThresholdDithering, 4, null);
        
            dicomImage.save(dir + "sample.ThresholdDithering4.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage dicomImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Perform floyd dithering using 1-bit color palette which contains only 2 colors - black and white.
            // The more bits specified the higher quality and the bigger size of the output image.
            // Note that only 1-bit, 4-bit and 8-bit palettes are supported at the moment.
            dicomImage.dither(com.aspose.imaging.DitheringMethod.FloydSteinbergDithering, 1, null);
        
            dicomImage.save(dir + "sample.FloydSteinbergDithering1.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • filter

        public void filter(Rectangle rectangle,
                           FilterOptionsBase options)

        Filters the specified rectangle.

        Overrides:
        filter in class RasterImage
        Parameters:
        rectangle - The rectangle.
        options - The options.
        Code example:

        The following example applies various types of filters to a DJVU image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a median filter with a rectangle size of 5 to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.MedianFilterOptions(5));
            djvuImage.save(dir + "sample.MedianFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a bilateral smoothing filter with a kernel size of 5 to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.BilateralSmoothingFilterOptions(5));
            djvuImage.save(dir + "sample.BilateralSmoothingFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a Gaussian blur filter with a radius of 5 and a sigma value of 4.0 to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.GaussianBlurFilterOptions(5, 4.0));
            djvuImage.save(dir + "sample.GaussianBlurFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a Gauss-Wiener filter with a radius of 5 and a smooth value of 4.0 to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.GaussWienerFilterOptions(5, 4.0));
            djvuImage.save(dir + "sample.GaussWienerFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a motion wiener filter with a length of 5, a smooth value of 4.0 and an angle of 90.0 degrees to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.MotionWienerFilterOptions(10, 1.0, 90.0));
            djvuImage.save(dir + "sample.MotionWienerFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        
        image = com.aspose.imaging.Image.load(dir + "sample.djvu");
        try {
            com.aspose.imaging.fileformats.djvu.DjvuImage djvuImage = (com.aspose.imaging.fileformats.djvu.DjvuImage) image;
        
            // Apply a sharpen filter with a kernel size of 5 and a sigma value of 4.0 to the entire image.
            djvuImage.filter(djvuImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.SharpenFilterOptions(5, 4.0));
            djvuImage.save(dir + "sample.SharpenFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
        } finally {
            image.dispose();
        }
        

      • replaceColor

        public void replaceColor(int oldColorArgb,
                                 byte oldColorDiff,
                                 int newColorArgb)

        Replaces one color to another with allowed difference and preserves original alpha value to save smooth edges.

        Overrides:
        replaceColor in class RasterImage
        Parameters:
        oldColorArgb - Old color ARGB value to be replaced.
        oldColorDiff - Allowed difference in old color to be able to widen replaced color tone.
        newColorArgb - New color ARGB value to replace old color with.
      • replaceNonTransparentColors

        public void replaceNonTransparentColors(int newColorArgb)

        Replaces all non-transparent colors with new color and preserves original alpha value to save smooth edges. Note: if you use it on images without transparency, all colors will be replaced with a single one.

        Overrides:
        replaceNonTransparentColors in class RasterImage
        Parameters:
        newColorArgb - New color ARGB value to replace non transparent colors with.