Packages

 

com.aspose.imaging.imageoptions

Class TiffOptions

  • All Implemented Interfaces:
    com.aspose.ms.System.IDisposable, Closeable, AutoCloseable


    public class TiffOptions
    extends ImageOptionsBase

    The tiff file format options. Note that width and height tags will get overwritten on image creation by width and height parameters so there is no need to specify them directly. Note that many options return a default value but that does not mean that this option is set explicitly as a tag value. To verify the tag is present use Tags property or the corresponding IsTagPresent method.

    <developer_tip> WARNING! never modify tiff options during save since this may cause side effects and hard to find bugs. The following line was specially left commented since it caused incorrect determination of data beginning. The passed options did not contain spp (although the options are not correct in such case but still this scenario causes errors) and the next line caused +spp tag +bpp tag added and when options were written after data completely written they have overwritten the data beginning for uncompressed codec!!! See TiffUncompressedCodec.Encode. this.Options.SamplesPerPixel = 3; </developer_tip>
    Code example:

    This example demonstrates the use of different classes from SaveOptions Namespace for export purposes. An image of type Gif is loaded into an instance of Image and then exported out to several formats.


    String dir = "c:\\temp\\";
    
    //Load an existing image (of type Gif) in an instance of Image class
    com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
    try {
        //Export to BMP file format using the default options
        image.save(dir + "output.bmp", new com.aspose.imaging.imageoptions.BmpOptions());
    
        //Export to JPEG file format using the default options
        image.save(dir + "output.jpeg", new com.aspose.imaging.imageoptions.JpegOptions());
    
        //Export to PNG file format using the default options
        image.save(dir + "output.png", new com.aspose.imaging.imageoptions.PngOptions());
    
        //Export to TIFF file format using the default options
        image.save(dir + "output.tif", new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default));
    } finally {
        image.dispose();
    }
    

    • Constructor Detail

      • TiffOptions

        public TiffOptions(int expectedFormat,
                           int byteOrder)

        Initializes a new instance of the TiffOptions class.

        Parameters:
        expectedFormat - The expected tiff file format.
        byteOrder - The tiff file format byte order to use.
      • TiffOptions

        public TiffOptions(int expectedFormat)

        Initializes a new instance of the TiffOptions class. By default little endian convention is used.

        Parameters:
        expectedFormat - The expected tiff file format.
        Code example:

        The following example shows how to create a grayscale copy of an existing frame and add it to a TIFF image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions createTiffOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Create a permanent, not temporary file source.
        createTiffOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dir + "multipage.tif", false));
        createTiffOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        createTiffOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) com.aspose.imaging.Image.create(createTiffOptions, 100, 100);
        try {
            // The linear gradient from the left-top to the right-bottom corner of the image.
            com.aspose.imaging.brushes.LinearGradientBrush brush =
                    new com.aspose.imaging.brushes.LinearGradientBrush(
                            new com.aspose.imaging.Point(0, 0),
                            new com.aspose.imaging.Point(tiffImage.getWidth(), tiffImage.getHeight()),
                            com.aspose.imaging.Color.getRed(),
                            com.aspose.imaging.Color.getGreen());
        
            // Fill the active frame with a linear gradient brush.
            com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(tiffImage.getActiveFrame());
            gr.fillRectangle(brush, tiffImage.getBounds());
        
            // Grayscale options
            com.aspose.imaging.imageoptions.TiffOptions createTiffFrameOptions
                    = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
            createTiffFrameOptions.setSource(new com.aspose.imaging.sources.StreamSource(new java.io.ByteArrayInputStream(new byte[0])));
            createTiffFrameOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.MinIsBlack);
            createTiffFrameOptions.setBitsPerSample(new int[]{8});
        
            // Create a grayscale copy of the active frame.
            // The pixel data is preserved but converted to the desired format.
            com.aspose.imaging.fileformats.tiff.TiffFrame grayscaleFrame
                    = com.aspose.imaging.fileformats.tiff.TiffFrame.createFrameFrom(tiffImage.getActiveFrame(), createTiffFrameOptions);
        
            // Add the newly created frame to the TIFF image.
            tiffImage.addFrame(grayscaleFrame);
        
            tiffImage.save();
        } finally {
            tiffImage.dispose();
        }
        

      • TiffOptions

        public TiffOptions(TiffOptions options)

        Initializes a new instance of the TiffOptions class.

        Parameters:
        options - The options to copy from.
      • TiffOptions

        public TiffOptions(TiffDataType[] tags)

        Initializes a new instance of the TiffOptions class.

        Parameters:
        tags - The tags to initialize options with.
    • Method Detail

      • getValidTagsCount

        public static int getValidTagsCount(TiffDataType[] tags)

        Gets the valid tags count.

        Parameters:
        tags - The tags to validate.
        Returns:
        The valid tags count.
      • getFileStandard

        public int getFileStandard()

        Gets or sets the TIFF file standard.

        Returns:
        The TIFF file standard.
      • setFileStandard

        public void setFileStandard(int value)

        Gets or sets the TIFF file standard.

        Parameters:
        value - The TIFF file standard.
      • getPremultiplyComponents

        public boolean getPremultiplyComponents()

        Gets or sets a value indicating whether components must be premultiplied.

        Returns:
        true if components must be premultiplied; otherwise, false.
      • setPremultiplyComponents

        public void setPremultiplyComponents(boolean value)

        Gets or sets a value indicating whether components must be premultiplied.

        Parameters:
        value - true if components must be premultiplied; otherwise, false.
      • isValid

        public boolean isValid()

        Gets a value indicating whether the TiffOptions have been properly configured. Use Validate method as to find the failure reason.

        Returns:
        true if TiffOptions are properly configured; otherwise, false.
      • getYCbCrSubsampling

        public int[] getYCbCrSubsampling()

        Gets or sets the subsampling factors for YCbCr photometric.

        Returns:
        The subsampling factors for YCbCr photometric.
        Throws:
        TiffImageException - Invalid field length. YCbCrSubsampling field must contain two values.
        com.aspose.ms.System.ArgumentNullException - value
      • setYCbCrSubsampling

        public void setYCbCrSubsampling(int[] value)

        Gets or sets the subsampling factors for YCbCr photometric.

        Parameters:
        value - The subsampling factors for YCbCr photometric.
        Throws:
        TiffImageException - Invalid field length. YCbCrSubsampling field must contain two values.
        com.aspose.ms.System.ArgumentNullException - value
        Code example:

        This example shows how to save a raster image to the TIFF format using various options.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions saveOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 8 bits for each color component.
        saveOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        // Set the Big Endian byte order (Motorola)
        saveOptions.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);
        
        // Set the LZW compression.
        saveOptions.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);
        
        // Allow to reduce the size of continuous-tone images.
        // Currently this field is used only with LZW encoding because LZW is probably the only TIFF encoding scheme
        // that benefits significantly from a predictor step.
        saveOptions.setPredictor(com.aspose.imaging.fileformats.tiff.enums.TiffPredictor.Horizontal);
        
        // Set the RGB color model.
        saveOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        
        // For YCbCr, you can use one of the following choices:
        // YCbCrSubSampling field   JPEG sampling factors
        // ----------------------------------------------
        // 1,1                      1x1, 1x1, 1x1
        // 2,1                      2x1, 1x1, 1x1
        // 2,2(default value)       2x2, 1x1, 1x1
        // saveOptions.YCbCrSubsampling = new ushort[] { 2, 2 };
        
        // All color components will be stored within a single plane.
        saveOptions.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);
        
        // Create a TIFF Frame of 100x100 px.
        com.aspose.imaging.Image image = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
        try {
            // Fill the entire image with the blue-yellow gradient.
            com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
                    new com.aspose.imaging.Point(0, 0),
                    new com.aspose.imaging.Point(image.getWidth(), image.getHeight()),
                    com.aspose.imaging.Color.getBlue(),
                    com.aspose.imaging.Color.getYellow());
        
            com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(image);
            graphics.fillRectangle(gradientBrush, image.getBounds());
        
            image.save(dir + "output.tif", saveOptions);
        } finally {
            image.dispose();
        }
        

      • getYCbCrCoefficients

        public TiffRational[] getYCbCrCoefficients()

        Gets or sets the YCbCrCoefficients.

        Returns:
        The YCbCrCoefficients.
        Throws:
        TiffImageException - Invalid count of rational coefficient values. Must be equal to 3.
        com.aspose.ms.System.ArgumentNullException - value
      • setYCbCrCoefficients

        public void setYCbCrCoefficients(TiffRational[] value)

        Gets or sets the YCbCrCoefficients.

        Parameters:
        value - The YCbCrCoefficients.
        Throws:
        TiffImageException - Invalid count of rational coefficient values. Must be equal to 3.
        com.aspose.ms.System.ArgumentNullException - value
      • isTiled

        public boolean isTiled()

        Gets a value indicating whether image is tiled.

        Returns:
        true if image is tiled; otherwise, false.
      • getArtist

        public String getArtist()

        Gets or sets the artist.

        Returns:
        The artist.
      • setArtist

        public void setArtist(String value)

        Gets or sets the artist.

        Parameters:
        value - The artist.
      • isTagPresent

        public boolean isTagPresent(int tag)

        Determines whether tag is present in the options or not.

        Parameters:
        tag - The tag id to check.
        Returns:
        true if tag is present; otherwise, false.
      • getByteOrder

        public int getByteOrder()

        Gets or sets a value indicating the tiff byte order.

      • setByteOrder

        public void setByteOrder(int value)

        Gets or sets a value indicating the tiff byte order.

        Code example:

        This example shows how to save a raster image to the TIFF format using various options.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions saveOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 8 bits for each color component.
        saveOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        // Set the Big Endian byte order (Motorola)
        saveOptions.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);
        
        // Set the LZW compression.
        saveOptions.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);
        
        // Allow to reduce the size of continuous-tone images.
        // Currently this field is used only with LZW encoding because LZW is probably the only TIFF encoding scheme
        // that benefits significantly from a predictor step.
        saveOptions.setPredictor(com.aspose.imaging.fileformats.tiff.enums.TiffPredictor.Horizontal);
        
        // Set the RGB color model.
        saveOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        
        // For YCbCr, you can use one of the following choices:
        // YCbCrSubSampling field   JPEG sampling factors
        // ----------------------------------------------
        // 1,1                      1x1, 1x1, 1x1
        // 2,1                      2x1, 1x1, 1x1
        // 2,2(default value)       2x2, 1x1, 1x1
        // saveOptions.YCbCrSubsampling = new ushort[] { 2, 2 };
        
        // All color components will be stored within a single plane.
        saveOptions.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);
        
        // Create a TIFF Frame of 100x100 px.
        com.aspose.imaging.Image image = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
        try {
            // Fill the entire image with the blue-yellow gradient.
            com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
                    new com.aspose.imaging.Point(0, 0),
                    new com.aspose.imaging.Point(image.getWidth(), image.getHeight()),
                    com.aspose.imaging.Color.getBlue(),
                    com.aspose.imaging.Color.getYellow());
        
            com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(image);
            graphics.fillRectangle(gradientBrush, image.getBounds());
        
            image.save(dir + "output.tif", saveOptions);
        } finally {
            image.dispose();
        }
        

      • getIccProfile

        public byte[] getIccProfile()

        Gets the icc profile stream.

        Returns:
        The icc profile.
      • setIccProfile

        public void setIccProfile(byte[] value)

        Sets the icc profile stream.

        Parameters:
        value - The icc profile.
      • getBitsPerSample

        public int[] getBitsPerSample()

        Gets the bits per sample.

        Returns:
        The bits per sample value.

        When setting this value keep in mind that it will also set SamplesPerPixel value to array length. These 2 properties are very tightly coupled so may be set alltogether only.

      • setBitsPerSample

        public void setBitsPerSample(int[] value)

        Sets the bits per sample.

        Parameters:
        value - The bits per sample value.

        When setting this value keep in mind that it will also set SamplesPerPixel value to array length. These 2 properties are very tightly coupled so may be set alltogether only.

        Code example:

        The following example shows how to create a grayscale copy of an existing frame and add it to a TIFF image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions createTiffOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Create a permanent, not temporary file source.
        createTiffOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dir + "multipage.tif", false));
        createTiffOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        createTiffOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) com.aspose.imaging.Image.create(createTiffOptions, 100, 100);
        try {
            // The linear gradient from the left-top to the right-bottom corner of the image.
            com.aspose.imaging.brushes.LinearGradientBrush brush =
                    new com.aspose.imaging.brushes.LinearGradientBrush(
                            new com.aspose.imaging.Point(0, 0),
                            new com.aspose.imaging.Point(tiffImage.getWidth(), tiffImage.getHeight()),
                            com.aspose.imaging.Color.getRed(),
                            com.aspose.imaging.Color.getGreen());
        
            // Fill the active frame with a linear gradient brush.
            com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(tiffImage.getActiveFrame());
            gr.fillRectangle(brush, tiffImage.getBounds());
        
            // Grayscale options
            com.aspose.imaging.imageoptions.TiffOptions createTiffFrameOptions
                    = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
            createTiffFrameOptions.setSource(new com.aspose.imaging.sources.StreamSource(new java.io.ByteArrayInputStream(new byte[0])));
            createTiffFrameOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.MinIsBlack);
            createTiffFrameOptions.setBitsPerSample(new int[]{8});
        
            // Create a grayscale copy of the active frame.
            // The pixel data is preserved but converted to the desired format.
            com.aspose.imaging.fileformats.tiff.TiffFrame grayscaleFrame
                    = com.aspose.imaging.fileformats.tiff.TiffFrame.createFrameFrom(tiffImage.getActiveFrame(), createTiffFrameOptions);
        
            // Add the newly created frame to the TIFF image.
            tiffImage.addFrame(grayscaleFrame);
        
            tiffImage.save();
        } finally {
            tiffImage.dispose();
        }
        

      • getCompression

        public int getCompression()

        Gets the compression.

        Returns:
        The compression.
      • setCompression

        public void setCompression(int value)

        Sets the compression.

        Parameters:
        value - The compression.
        Code example:

        This example shows how to create a TIFF image with 2 frames and save it to a file.


        String dir = "c:\\temp\\";
        
        // Options for the first frame
        com.aspose.imaging.imageoptions.TiffOptions createOptions1 =
                new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 8 bits for each color component.
        createOptions1.setBitsPerSample(new int[]{8, 8, 8});
        
        // Set the Big Endian byte order (Motorola)
        createOptions1.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);
        
        // Set the LZW compression.
        createOptions1.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);
        
        // Set the RGB color model.
        createOptions1.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        
        // All color components will be stored within a single plane.
        createOptions1.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);
        
        // Create the first TIFF frame of 100x100 px.
        // Note that you don't have to dispose frames explicitly if they are included into TiffImage.
        // When the container is disposed all frames will be disposed automatically.
        com.aspose.imaging.fileformats.tiff.TiffFrame frame1 = new com.aspose.imaging.fileformats.tiff.TiffFrame(createOptions1, 100, 100);
        
        // Fill the first frame with the blue-yellow gradient.
        com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
                new com.aspose.imaging.Point(0, 0),
                new com.aspose.imaging.Point(frame1.getWidth(), frame1.getHeight()),
                com.aspose.imaging.Color.getBlue(),
                com.aspose.imaging.Color.getYellow());
        
        com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(frame1);
        graphics.fillRectangle(gradientBrush, frame1.getBounds());
        
        // Options for the first frame
        com.aspose.imaging.imageoptions.TiffOptions createOptions2
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 1 bit per pixel for a B/W image.
        createOptions2.setBitsPerSample(new int[]{1});
        
        // Set the Little Endian byte order (Intel)
        createOptions2.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.LittleEndian);
        
        // Set the CCITT Group 3 Fax compression.
        createOptions2.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.CcittFax3);
        
        // Set the B/W color model where 0 is black, 1 is white.
        createOptions2.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.MinIsBlack);
        
        // Create the second TIFF frame of 200x200px.
        com.aspose.imaging.fileformats.tiff.TiffFrame frame2 = new com.aspose.imaging.fileformats.tiff.TiffFrame(createOptions2, 200, 200);
        
        // Fill the second frame with the blue-yellow gradient.
        // It will be automatically converted to the B/W format due to the corresponding settings of the frame.
        com.aspose.imaging.Graphics graphics2 = new com.aspose.imaging.Graphics(frame2);
        graphics2.fillRectangle(gradientBrush, frame2.getBounds());
        
        // Create a TIFF image.
        com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = new com.aspose.imaging.fileformats.tiff.TiffImage(
                new com.aspose.imaging.fileformats.tiff.TiffFrame[]{frame1, frame2});
        try {
            tiffImage.save(dir + "output.mutliframe.tif");
        } finally {
            tiffImage.dispose();
        }
        

      • getCopyright

        public String getCopyright()

        Gets the copyright.

        Returns:
        The copyright.
      • setCopyright

        public void setCopyright(String value)

        Sets the copyright.

        Parameters:
        value - The copyright.
      • getColorMap

        public int[] getColorMap()

        Gets or sets the color map.

        Returns:
        The color map.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        TiffImageException - The color map may be defined for samples per pixel equal to 1 only. or The bits per sample are not defined.
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the followign formula: 3 * (2**BitsPerSample).
      • setColorMap

        public void setColorMap(int[] value)

        Gets or sets the color map.

        Parameters:
        value - The color map.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        TiffImageException - The color map may be defined for samples per pixel equal to 1 only. or The bits per sample are not defined.
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the followign formula: 3 * (2**BitsPerSample).
      • getDateTime

        public String getDateTime()

        Gets or sets the date and time.

        Returns:
        The date and time.
      • setDateTime

        public void setDateTime(String value)

        Gets or sets the date and time.

        Parameters:
        value - The date and time.
      • getDocumentName

        public String getDocumentName()

        Gets or sets the name of the document.

        Returns:
        The name of the document.
      • setDocumentName

        public void setDocumentName(String value)

        Gets or sets the name of the document.

        Parameters:
        value - The name of the document.
      • getAlphaStorage

        public int getAlphaStorage()

        Gets or sets the alpha storage option. Options other than TiffAlphaStorage.Unspecified are used when there are more than 3 SamplesPerPixel defined.

        Returns:
        The alpha storage option.
      • setAlphaStorage

        public void setAlphaStorage(int value)

        Gets or sets the alpha storage option. Options other than TiffAlphaStorage.Unspecified are used when there are more than 3 SamplesPerPixel defined.

        Parameters:
        value - The alpha storage option.
      • isExtraSamplesPresent

        public boolean isExtraSamplesPresent()

        Gets a value indicating whether the extra samples is present.

        Returns:
        true if the extra samples is present; otherwise, false.
      • getFillOrder

        public int getFillOrder()

        Gets or sets the byte bits fill order.

        Returns:
        The byte bits fill order.
      • setFillOrder

        public void setFillOrder(int value)

        Gets or sets the byte bits fill order.

        Parameters:
        value - The byte bits fill order.
      • getHalfToneHints

        public int[] getHalfToneHints()

        Gets or sets the halftone hints.

        Returns:
        The halftone hints.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;Halftone hints array length must be equal to 2.
      • setHalfToneHints

        public void setHalfToneHints(int[] value)

        Gets or sets the halftone hints.

        Parameters:
        value - The halftone hints.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;Halftone hints array length must be equal to 2.
      • getImageDescription

        public String getImageDescription()

        Gets or sets the image description.

        Returns:
        The image description.
      • setImageDescription

        public void setImageDescription(String value)

        Gets or sets the image description.

        Parameters:
        value - The image description.
      • getInkNames

        public String getInkNames()

        Gets or sets the ink names.

        Returns:
        The ink names.
      • setInkNames

        public void setInkNames(String value)

        Gets or sets the ink names.

        Parameters:
        value - The ink names.
      • getScannerManufacturer

        public String getScannerManufacturer()

        Gets or sets the scanner manufacturer.

        Returns:
        The scanner manufacturer.
      • setScannerManufacturer

        public void setScannerManufacturer(String value)

        Gets or sets the scanner manufacturer.

        Parameters:
        value - The scanner manufacturer.
      • getMaxSampleValue

        public int[] getMaxSampleValue()

        Gets or sets the max sample value.

        Returns:
        The max sample value.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • setMaxSampleValue

        public void setMaxSampleValue(int[] value)

        Gets or sets the max sample value.

        Parameters:
        value - The max sample value.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • getMinSampleValue

        public int[] getMinSampleValue()

        Gets or sets the min sample value.

        Returns:
        The min sample value.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • setMinSampleValue

        public void setMinSampleValue(int[] value)

        Gets or sets the min sample value.

        Parameters:
        value - The min sample value.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • getScannerModel

        public String getScannerModel()

        Gets or sets the scanner model.

        Returns:
        The scanner model.
      • setScannerModel

        public void setScannerModel(String value)

        Gets or sets the scanner model.

        Parameters:
        value - The scanner model.
      • getOrientation

        public int getOrientation()

        Gets or sets the orientation.

        Returns:
        The orientation.
      • setOrientation

        public void setOrientation(int value)

        Gets or sets the orientation.

        Parameters:
        value - The orientation.
      • getPageName

        public String getPageName()

        Gets or sets the page name.

        Returns:
        The page name.
      • setPageName

        public void setPageName(String value)

        Gets or sets the page name.

        Parameters:
        value - The page name.
      • getPageNumber

        public int[] getPageNumber()

        Gets or sets the page number tag.

        Returns:
        The page number tag.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;Expected 2 values in the array: PageNumber[0] is the page number and PageNumber[1] is the total number of pages in the document.
      • setPageNumber

        public void setPageNumber(int[] value)

        Gets or sets the page number tag.

        Parameters:
        value - The page number tag.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;Expected 2 values in the array: PageNumber[0] is the page number and PageNumber[1] is the total number of pages in the document.
      • getPhotometric

        public int getPhotometric()

        Gets or sets the photometric.

        Returns:
        The photometric.
        See Also:
        TiffPhotometrics
      • setPhotometric

        public void setPhotometric(int value)

        Gets or sets the photometric.

        Parameters:
        value - The photometric.
        Code example:

        The following example shows how to create a grayscale copy of an existing frame and add it to a TIFF image.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions createTiffOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Create a permanent, not temporary file source.
        createTiffOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dir + "multipage.tif", false));
        createTiffOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        createTiffOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) com.aspose.imaging.Image.create(createTiffOptions, 100, 100);
        try {
            // The linear gradient from the left-top to the right-bottom corner of the image.
            com.aspose.imaging.brushes.LinearGradientBrush brush =
                    new com.aspose.imaging.brushes.LinearGradientBrush(
                            new com.aspose.imaging.Point(0, 0),
                            new com.aspose.imaging.Point(tiffImage.getWidth(), tiffImage.getHeight()),
                            com.aspose.imaging.Color.getRed(),
                            com.aspose.imaging.Color.getGreen());
        
            // Fill the active frame with a linear gradient brush.
            com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(tiffImage.getActiveFrame());
            gr.fillRectangle(brush, tiffImage.getBounds());
        
            // Grayscale options
            com.aspose.imaging.imageoptions.TiffOptions createTiffFrameOptions
                    = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
            createTiffFrameOptions.setSource(new com.aspose.imaging.sources.StreamSource(new java.io.ByteArrayInputStream(new byte[0])));
            createTiffFrameOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.MinIsBlack);
            createTiffFrameOptions.setBitsPerSample(new int[]{8});
        
            // Create a grayscale copy of the active frame.
            // The pixel data is preserved but converted to the desired format.
            com.aspose.imaging.fileformats.tiff.TiffFrame grayscaleFrame
                    = com.aspose.imaging.fileformats.tiff.TiffFrame.createFrameFrom(tiffImage.getActiveFrame(), createTiffFrameOptions);
        
            // Add the newly created frame to the TIFF image.
            tiffImage.addFrame(grayscaleFrame);
        
            tiffImage.save();
        } finally {
            tiffImage.dispose();
        }
        

      • getPlanarConfiguration

        public int getPlanarConfiguration()

        Gets or sets the planar configuration.

        Returns:
        The planar configuration.
      • setPlanarConfiguration

        public void setPlanarConfiguration(int value)

        Gets or sets the planar configuration.

        Parameters:
        value - The planar configuration.
        Code example:

        This example shows how to create a TIFF image from scratch and save it to a file.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions createOptions =
                new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 8 bits for each color component.
        createOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        // Set the Big Endian byte order (Motorola)
        createOptions.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);
        
        // Set the LZW compression.
        createOptions.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);
        
        // Set the RGB color model.
        createOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        
        // All color components will be stored within a single plane.
        createOptions.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);
        
        // Create a TIFF Frame of 100x100 px.
        // Note that you don't have to dispose a frame explicitly if it is included into TiffImage.
        // When the container is disposed all frames will be disposed automatically.
        com.aspose.imaging.fileformats.tiff.TiffFrame firstFrame = new com.aspose.imaging.fileformats.tiff.TiffFrame(createOptions, 100, 100);
        
        // Fill the entire frame with the blue-yellow gradient.
        com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
                new com.aspose.imaging.Point(0, 0),
                new com.aspose.imaging.Point(firstFrame.getWidth(), firstFrame.getHeight()),
                com.aspose.imaging.Color.getBlue(),
                com.aspose.imaging.Color.getYellow());
        
        com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(firstFrame);
        graphics.fillRectangle(gradientBrush, firstFrame.getBounds());
        
        // Create a TIFF image.
        com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = new com.aspose.imaging.fileformats.tiff.TiffImage(firstFrame);
        try {
            tiffImage.save(dir + "output.tif");
        } finally {
            tiffImage.dispose();
        }
        

      • getResolutionUnit

        public int getResolutionUnit()

        Gets or sets the resolution unit.

        Returns:
        The resolution unit.
      • setResolutionUnit

        public void setResolutionUnit(int value)

        Gets or sets the resolution unit.

        Parameters:
        value - The resolution unit.
      • getRowsPerStrip

        public long getRowsPerStrip()

        Gets or sets the rows per strip.

        Returns:
        The rows per strip.
      • setRowsPerStrip

        public void setRowsPerStrip(long value)

        Gets or sets the rows per strip.

        Parameters:
        value - The rows per strip.
      • getTileWidth

        public long getTileWidth()

        Gets ot sets tile width.

      • setTileWidth

        public void setTileWidth(long value)

        Gets ot sets tile width.

      • getTileLength

        public long getTileLength()

        Gets ot sets tile length.

      • setTileLength

        public void setTileLength(long value)

        Gets ot sets tile length.

      • getSampleFormat

        public int[] getSampleFormat()

        Gets or sets the sample format.

        Returns:
        The sample format.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • setSampleFormat

        public void setSampleFormat(int[] value)

        Gets or sets the sample format.

        Parameters:
        value - The sample format.
        Throws:
        com.aspose.ms.System.ArgumentNullException - value
        com.aspose.ms.System.ArgumentOutOfRangeException - value;The array length must correspond to the samples per pixel count.
      • getSamplesPerPixel

        public int getSamplesPerPixel()

        Gets the samples per pixel. To change this property value use the BitsPerSample property setter.

        Returns:
        The samples per pixel.
      • getSmaxSampleValue

        public long[] getSmaxSampleValue()

        Gets or sets the max sample value. The value has a field type which best matches the sample data (Byte, Short or Long type).

        Returns:
        The max sample value.
      • setSmaxSampleValue

        public void setSmaxSampleValue(long[] value)

        Gets or sets the max sample value. The value has a field type which best matches the sample data (Byte, Short or Long type).

        Parameters:
        value - The max sample value.
      • getSminSampleValue

        public long[] getSminSampleValue()

        Gets or sets the min sample value. The value has a field type which best matches the sample data (Byte, Short or Long type).

        Returns:
        The min sample value.
      • setSminSampleValue

        public void setSminSampleValue(long[] value)

        Gets or sets the min sample value. The value has a field type which best matches the sample data (Byte, Short or Long type).

        Parameters:
        value - The min sample value.
      • getSoftwareType

        public String getSoftwareType()

        Gets or sets the software type.

        Returns:
        The software type.
      • setSoftwareType

        public void setSoftwareType(String value)

        Gets or sets the software type.

        Parameters:
        value - The software type.
      • getStripByteCounts

        public long[] getStripByteCounts()

        Gets or sets the strip byte counts.

        Returns:
        The strip byte counts.
      • setStripByteCounts

        public void setStripByteCounts(long[] value)

        Gets or sets the strip byte counts.

        Parameters:
        value - The strip byte counts.
      • getStripOffsets

        public long[] getStripOffsets()

        Gets or sets the strip offsets.

        Returns:
        The strip offsets.
      • setStripOffsets

        public void setStripOffsets(long[] value)

        Gets or sets the strip offsets.

        Parameters:
        value - The strip offsets.
      • getTileByteCounts

        public long[] getTileByteCounts()

        Gets or sets the tile byte counts.

      • setTileByteCounts

        public void setTileByteCounts(long[] value)

        Gets or sets the tile byte counts.

      • getTileOffsets

        public long[] getTileOffsets()

        Gets or sets the tile offsets.

      • setTileOffsets

        public void setTileOffsets(long[] value)

        Gets or sets the tile offsets.

      • getSubFileType

        public long getSubFileType()

        Gets or sets a general indication of the kind of data contained in this subfile.

        Returns:
        The general indication of the kind of data contained in this subfile.
      • setSubFileType

        public void setSubFileType(long value)

        Gets or sets a general indication of the kind of data contained in this subfile.

        Parameters:
        value - The general indication of the kind of data contained in this subfile.
      • getTargetPrinter

        public String getTargetPrinter()

        Gets or sets the target printer.

        Returns:
        The target printer.
      • setTargetPrinter

        public void setTargetPrinter(String value)

        Gets or sets the target printer.

        Parameters:
        value - The target printer.
      • getThreshholding

        public int getThreshholding()

        Gets or sets the threshholding.

        Returns:
        The threshholding.
      • setThreshholding

        public void setThreshholding(int value)

        Gets or sets the threshholding.

        Parameters:
        value - The threshholding.
      • getTotalPages

        public int getTotalPages()

        Gets the total pages.

        Returns:
        The total pages.
      • getXposition

        public TiffRational getXposition()

        Gets or sets the x position.

        Returns:
        The x position.
      • setXposition

        public void setXposition(TiffRational value)

        Gets or sets the x position.

        Parameters:
        value - The x position.
      • getXresolution

        public TiffRational getXresolution()

        Gets or sets the x resolution.

        Returns:
        The x resolution.
      • setXresolution

        public void setXresolution(TiffRational value)

        Gets or sets the x resolution.

        Parameters:
        value - The x resolution.
      • getYposition

        public TiffRational getYposition()

        Gets or sets the y position.

        Returns:
        The y position.
      • setYposition

        public void setYposition(TiffRational value)

        Gets or sets the y position.

        Parameters:
        value - The y position.
      • getYresolution

        public TiffRational getYresolution()

        Gets or sets the y resolution.

        Returns:
        The y resolution.
      • setYresolution

        public void setYresolution(TiffRational value)

        Gets or sets the y resolution.

        Parameters:
        value - The y resolution.
      • getFaxT4Options

        public long getFaxT4Options()

        Gets or sets the fax t4 options.

        Returns:
        The fax t4 options.
      • setFaxT4Options

        public void setFaxT4Options(long value)

        Gets or sets the fax t4 options.

        Parameters:
        value - The fax t4 options.
      • getPredictor

        public int getPredictor()

        Gets or sets the predictor for LZW compression.

        Returns:
        The predictor type.
      • setPredictor

        public void setPredictor(int value)

        Gets or sets the predictor for LZW compression.

        Parameters:
        value - The predictor type.
        Code example:

        This example shows how to save a raster image to the TIFF format using various options.


        String dir = "c:\\temp\\";
        
        com.aspose.imaging.imageoptions.TiffOptions saveOptions
                = new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default);
        
        // Set 8 bits for each color component.
        saveOptions.setBitsPerSample(new int[]{8, 8, 8});
        
        // Set the Big Endian byte order (Motorola)
        saveOptions.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);
        
        // Set the LZW compression.
        saveOptions.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);
        
        // Allow to reduce the size of continuous-tone images.
        // Currently this field is used only with LZW encoding because LZW is probably the only TIFF encoding scheme
        // that benefits significantly from a predictor step.
        saveOptions.setPredictor(com.aspose.imaging.fileformats.tiff.enums.TiffPredictor.Horizontal);
        
        // Set the RGB color model.
        saveOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);
        
        // For YCbCr, you can use one of the following choices:
        // YCbCrSubSampling field   JPEG sampling factors
        // ----------------------------------------------
        // 1,1                      1x1, 1x1, 1x1
        // 2,1                      2x1, 1x1, 1x1
        // 2,2(default value)       2x2, 1x1, 1x1
        // saveOptions.YCbCrSubsampling = new ushort[] { 2, 2 };
        
        // All color components will be stored within a single plane.
        saveOptions.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);
        
        // Create a TIFF Frame of 100x100 px.
        com.aspose.imaging.Image image = new com.aspose.imaging.fileformats.bmp.BmpImage(100, 100);
        try {
            // Fill the entire image with the blue-yellow gradient.
            com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
                    new com.aspose.imaging.Point(0, 0),
                    new com.aspose.imaging.Point(image.getWidth(), image.getHeight()),
                    com.aspose.imaging.Color.getBlue(),
                    com.aspose.imaging.Color.getYellow());
        
            com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(image);
            graphics.fillRectangle(gradientBrush, image.getBounds());
        
            image.save(dir + "output.tif", saveOptions);
        } finally {
            image.dispose();
        }
        

      • getImageLength

        public long getImageLength()

        Gets or sets the image length.

        Returns:
        The image length.
      • setImageLength

        public void setImageLength(long value)

        Gets or sets the image length.

        Parameters:
        value - The image length.
      • getImageWidth

        public long getImageWidth()

        Gets or sets the image width.

        Returns:
        The image width.
      • setImageWidth

        public void setImageWidth(long value)

        Gets or sets the image width.

        Parameters:
        value - The image width.
      • getExifIfd

        public TiffExifIfd getExifIfd()

        Gets or sets the pointer to EXIF IFD.

        Returns:
        The pointer to EXIF IFD.
      • getTags

        public TiffDataType[] getTags()

        Gets or sets the tags.

        Returns:
        The tags.
      • setTags

        public void setTags(TiffDataType[] value)

        Gets or sets the tags.

        Parameters:
        value - The tags.
      • getValidTagCount

        public int getValidTagCount()

        Gets the valid tag count. This is not the total tags count but the number of tags which may be preserved.

        Returns:
        The valid tag count.
      • getBitsPerPixel

        public int getBitsPerPixel()

        Gets the bits per pixel.

        Returns:
        The bits per pixel.
      • removeTag

        public boolean removeTag(int tag)

        Removes the tag.

        Parameters:
        tag - The tag to remove.
        Returns:
        true if successfully removed
      • validate

        public void validate()

        Validates if options have valid combination of tags

      • addTags

        public void addTags(TiffDataType[] tagsToAdd)

        Adds the tags.

        Parameters:
        tagsToAdd - The tags to add.
      • addTag

        public void addTag(TiffDataType tagToAdd)

        Adds a new tag.

        Parameters:
        tagToAdd - The tag to add.
      • getTagByType

        public TiffDataType getTagByType(int tagKey)

        Gets the instance of the tag by type.

        Parameters:
        tagKey - The tag key.
        Returns:
        Instance of the tag if exists or null otherwise.