TiffFrame

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.DataStreamSupporter, com.aspose.imaging.Image, com.aspose.imaging.RasterImage, com.aspose.imaging.RasterCachedImage

public final class TiffFrame extends RasterCachedImage

Кадр TIFF.

Конструкторы

КонструкторОписание
TiffFrame(InputStream stream)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(InputStream stream, TiffOptions options)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(String path)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(String path, TiffOptions options)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(RasterImage image)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(RasterImage image, TiffOptions options)Инициализирует новый экземпляр класса TiffFrame.
TiffFrame(TiffOptions options, int width, int height)Инициализирует новый экземпляр класса TiffFrame.

Методы

МетодОписание
getBackgroundColor()Получает значение фонового цвета.
setBackgroundColor(Color value)Устанавливает значение фонового цвета.
hasAlpha()Получает значение, указывающее, имеет ли этот экземпляр альфа‑канал.
getBitsPerPixel()Получает количество бит на пиксель изображения.
getFrameOptions()Получает параметры создания кадра.
getHeight()Получает высоту изображения.
getWidth()Получает ширину изображения.
getHorizontalResolution()Получает горизонтальное разрешение в пикселях на дюйм для этого RasterImage.
setHorizontalResolution(double value)Устанавливает горизонтальное разрешение в пикселях на дюйм для этого RasterImage.
getVerticalResolution()Получает вертикальное разрешение в пикселях на дюйм для этого RasterImage.
setVerticalResolution(double value)Устанавливает вертикальное разрешение в пикселях на дюйм для этого RasterImage.
getPathResources()Получает ресурсы пути.
setPathResources(List value)Устанавливает ресурсы пути.
removeMetadata()Удаляет метаданные этого экземпляра изображения, устанавливая IHasXmpData.XmpData (IHasXmpData.getXmpData/IHasXmpData.setXmpData(XmpPacketWrapper)) и IHasExifData.ExifData(IHasExifData.getExifData/IHasExifData.setExifData(ExifData) IHasExifData.setExifData) в null.
getOriginalOptions()Получает параметры, основанные на настройках оригинального файла.
alignResolutions()Вспомогательный метод для приведения горизонтального и вертикального разрешений к одинаковому значению.
copyFrame(TiffFrame tiffFrame)Копирует весь кадр (дублирует).
createFrameFrom(TiffFrame tiffFrame, TiffOptions options)Создаёт кадр из указанного tiffFrame, используя указанные options.
resize(int newWidth, int newHeight, int resizeType)Изменяет размер изображения.
rotateFlip(int rotateFlipType)Поворачивает, отражает или одновременно поворачивает и отражает изображение.
rotate(float angle, boolean resizeProportionally, Color backgroundColor)Поворачивает изображение вокруг центра.
crop(Rectangle rectangle)Обрезка изображения.

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);

// Установите 8 бит для каждого цветового компонента.
createOptions.setBitsPerSample(new int[]{8, 8, 8});

// Установите порядок байтов Big Endian (Motorola).
createOptions.setByteOrder(com.aspose.imaging.fileformats.tiff.enums.TiffByteOrder.BigEndian);

// Установите сжатие LZW.
createOptions.setCompression(com.aspose.imaging.fileformats.tiff.enums.TiffCompressions.Lzw);

// Установите цветовую модель RGB.
createOptions.setPhotometric(com.aspose.imaging.fileformats.tiff.enums.TiffPhotometrics.Rgb);

// Все цветовые компоненты будут храниться в единой плоскости.
createOptions.setPlanarConfiguration(com.aspose.imaging.fileformats.tiff.enums.TiffPlanarConfigs.Contiguous);

// Создайте TIFF‑кадр размером 100×100 пикселей.
// Обратите внимание, что вам не нужно явно освобождать кадр, если он включён в TiffImage.
// При освобождении контейнера все кадры будут освобождены автоматически.
com.aspose.imaging.fileformats.tiff.TiffFrame firstFrame = new com.aspose.imaging.fileformats.tiff.TiffFrame(createOptions, 100, 100);

// Заполните весь кадр градиентом от синего к жёлтому.
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());

// Создайте TIFF‑изображение.
com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = new com.aspose.imaging.fileformats.tiff.TiffImage(firstFrame);
try {
    tiffImage.save(dir + "output.tif");
} finally {
    tiffImage.dispose();
}

TiffFrame(InputStream stream)

public TiffFrame(InputStream stream)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
streamjava.io.InputStreamПоток, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра.

TiffFrame(InputStream stream, TiffOptions options)

public TiffFrame(InputStream stream, TiffOptions options)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
streamjava.io.InputStreamПоток, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра.
optionsTiffOptionsПараметры, которые следует использовать для вновь созданного кадра.

TiffFrame(String path)

public TiffFrame(String path)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
pathjava.lang.StringПуть, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра.

TiffFrame(String path, TiffOptions options)

public TiffFrame(String path, TiffOptions options)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
pathjava.lang.StringПуть, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра.
optionsTiffOptionsПараметры, которые следует использовать для вновь созданного кадра.

TiffFrame(RasterImage image)

public TiffFrame(RasterImage image)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
imageRasterImageИзображение, с помощью которого инициализируются данные пикселей и палитры кадра.

TiffFrame(RasterImage image, TiffOptions options)

public TiffFrame(RasterImage image, TiffOptions options)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
imageRasterImageИзображение, с помощью которого инициализируются данные пикселей и палитры кадра.
optionsTiffOptionsПараметры, которые следует использовать для вновь созданного кадра.

TiffFrame(TiffOptions options, int width, int height)

public TiffFrame(TiffOptions options, int width, int height)

Инициализирует новый экземпляр класса TiffFrame.

Parameters:

ПараметрТипОписание
optionsTiffOptionsПараметры кадра.
widthintШирина.
heightintВысота.

getBackgroundColor()

public Color getBackgroundColor()

Получает значение фонового цвета.

Returns: Color

setBackgroundColor(Color value)

public void setBackgroundColor(Color value)

Устанавливает значение фонового цвета.

Parameters:

ПараметрТипОписание
valueColor

hasAlpha()

public boolean hasAlpha()

Получает значение, указывающее, имеет ли этот экземпляр альфа‑канал.

Returns: boolean - true, если у этого экземпляра есть альфа; в противном случае false.

Example: The following example loads a TIFF image and prints information about raw data format and alpha channel.

String dir = "c:\\temp\\";

String fileName = dir + "sample.tif";
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(fileName);
try {
    com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) image;

    // Если активный кадр TIFF содержит альфа-канал, то всё изображение TIFF считается имеющим альфа-канал.
    System.out.printf("ImageFile=%s, FileFormat=%s, HasAlpha=%s\r\n", fileName, tiffImage.getRawDataFormat(), tiffImage.hasAlpha());

    int i = 0;
    for (com.aspose.imaging.fileformats.tiff.TiffFrame frame : tiffImage.getFrames()) {
        System.out.printf("Frame=%s, FileFormat=%s, HasAlpha=%s\r\n", ++i, frame.getRawDataFormat(), frame.hasAlpha());
    }
} finally {
    image.dispose();
}

// Вывод может выглядеть так:
// ImageFile=c:\temp\sample.tif, FileFormat=RgbIndexed1Bpp, used channels: 1, HasAlpha=False
// Frame=1, FileFormat=RgbIndexed1Bpp, used channels: 1, HasAlpha=False
// Frame=2, FileFormat=RgbIndexed1Bpp, used channels: 1, HasAlpha=False

getBitsPerPixel()

public int getBitsPerPixel()

Получает количество бит на пиксель изображения.

Returns: int — Количество бит на пиксель изображения.

getFrameOptions()

public TiffOptions getFrameOptions()

Получает параметры создания кадра.

Returns: TiffOptions

getHeight()

public int getHeight()

Получает высоту изображения.

Returns: int — высота изображения.

getWidth()

public int getWidth()

Получает ширину изображения.

Returns: int — ширина изображения.

getHorizontalResolution()

public double getHorizontalResolution()

Получает горизонтальное разрешение в пикселях на дюйм для этого RasterImage.

Returns: double - Горизонтальное разрешение.

Example: The following example shows how to set horizontal/vertical resolution of a separate TIFF frame.

String dir = "c:\\temp\\";

// Загрузить TIFF‑изображение из файла.
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.tif");
try {
    com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) image;

    int i = 0;
    for (com.aspose.imaging.fileformats.tiff.TiffFrame frame : tiffImage.getFrames()) {
        // Получить горизонтальное и вертикальное разрешение TiffFrame.
        double horizontalResolution = frame.getHorizontalResolution();
        double verticalResolution = frame.getVerticalResolution();
        System.out.printf("The horizontal resolution of frame %s, pixels per inch: %s\r\n", i, horizontalResolution);
        System.out.printf("The vertical resolution, of frame %s, pixels per inch: %s\r\n", i, verticalResolution);

        if (horizontalResolution != 96.0 || verticalResolution != 96.0) {
            // Используйте метод SetResolution для обновления обоих значений разрешения одним вызовом.
            System.out.println("Set resolution values to 96 dpi");
            frame.setResolution(96.0, 96.0);

            System.out.printf("The horizontal resolution of frame %s, pixels per inch: %s\r\n", i, horizontalResolution);
            System.out.printf("The vertical resolution, of frame %s, pixels per inch: %s\r\n", i, verticalResolution);
        }

        ++i;
    }
} finally {
    image.dispose();
}

setHorizontalResolution(double value)

public void setHorizontalResolution(double value)

Устанавливает горизонтальное разрешение в пикселях на дюйм для этого RasterImage.

Parameters:

ПараметрТипОписание
valuedoubleГоризонтальное разрешение.

getVerticalResolution()

public double getVerticalResolution()

Получает вертикальное разрешение в пикселях на дюйм для этого RasterImage.

Returns: double - Вертикальное разрешение.

Example: The following example shows how to set horizontal/vertical resolution of a separate TIFF frame.

String dir = "c:\\temp\\";

// Загрузить TIFF‑изображение из файла.
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.tif");
try {
    com.aspose.imaging.fileformats.tiff.TiffImage tiffImage = (com.aspose.imaging.fileformats.tiff.TiffImage) image;

    int i = 0;
    for (com.aspose.imaging.fileformats.tiff.TiffFrame frame : tiffImage.getFrames()) {
        // Получить горизонтальное и вертикальное разрешение TiffFrame.
        double horizontalResolution = frame.getHorizontalResolution();
        double verticalResolution = frame.getVerticalResolution();
        System.out.printf("The horizontal resolution of frame %s, pixels per inch: %s\r\n", i, horizontalResolution);
        System.out.printf("The vertical resolution, of frame %s, pixels per inch: %s\r\n", i, verticalResolution);

        if (horizontalResolution != 96.0 || verticalResolution != 96.0) {
            // Используйте метод SetResolution для обновления обоих значений разрешения одним вызовом.
            System.out.println("Set resolution values to 96 dpi");
            frame.setResolution(96.0, 96.0);

            System.out.printf("The horizontal resolution of frame %s, pixels per inch: %s\r\n", i, horizontalResolution);
            System.out.printf("The vertical resolution, of frame %s, pixels per inch: %s\r\n", i, verticalResolution);
        }

        ++i;
    }
} finally {
    image.dispose();
}

setVerticalResolution(double value)

public void setVerticalResolution(double value)

Устанавливает вертикальное разрешение в пикселях на дюйм для этого RasterImage.

Parameters:

ПараметрТипОписание
valuedoubleВертикальное разрешение.

getPathResources()

public List<PathResource> getPathResources()

Получает ресурсы пути.

Значение: ресурсы пути.

Returns: java.util.List<com.aspose.imaging.fileformats.tiff.pathresources.PathResource> — ресурсы пути.

Example: The following example shows how to retrieve paths from TIFF image and display their names in the console.

try (TiffImage image = (TiffImage) Image.load("Sample.tif"))
{
    for (PathResource path : image.getActiveFrame().getPathResources())
    {
        System.out.println(path.getName());
    }
}

Example: The following example shows how to modify already existing Clipping Paths. В следующем примере показано, как изменить уже существующие обрезающие пути. Например, можно оставить в изображении только один обрезающий путь.

try (TiffImage image = (TiffImage) Image.load("Sample.tif"))
{
    List<PathResource> paths = image.getActiveFrame().getPathResources();
    image.getActiveFrame().setPathResources(Collections.singletonList(paths.get(0)));
    image.save();
}

Example: Transfer Clipping Paths during export from TIFF to PSD image.

try (Image image = Image.load("Sample.tif"))
{
    image.save("SampleWithPaths.psd", new PsdOptions());
}

Example: Create Clipping Path manually.

static void main()
{
    try (TiffImage image = (TiffImage)Image.load("Sample.tif"))
    {
        PathResource res = new PathResource();
        res.setBlockId((short) 2000);                                                  // Block Id according to Photoshop specification
        res.setName("My Clipping Path");                                               // Path name
        res.setRecords(createRecords(0.2f, 0.2f, 0.8f, 0.2f, 0.8f, 0.8f, 0.2f, 0.8f)); // Create path records using coordinates
                    
        image.getActiveFrame().setPathResources(Collections.singletonList(res));

        image.save("ImageWithPath.tif");
    }
}

private static List<VectorPathRecord> createRecords(float ... coordinates)
{
    List<VectorPathRecord>  records = createBezierRecords(coordinates);                                  // Create Bezier records using coordinates

    LengthRecord lr = new LengthRecord(); // LengthRecord required by Photoshop specification
    lr.setOpen(false);                    // Lets create closed path
    lr.setRecordCount(records.size());    // Record count in the path
                
    records.add(0, lr);

    return records;
}

private static List<VectorPathRecord> createBezierRecords(float[] coordinates)
{
    List<VectorPathRecord> l = new LinkedList<VectorPathRecord>();
                
    for (int index = 0; index < coordinates.length - 1; index += 2)
    {
        PointF pt = new PointF(coordinates[index], coordinates[index + 1]);
        BezierKnotRecord br = new BezierKnotRecord();
        br.setPathPoints(new PointF[] {pt, pt, pt});
        l.add(br);
    }
                    
    return l;
}

setPathResources(List value)

public void setPathResources(List<PathResource> value)

Устанавливает ресурсы пути.

Значение: ресурсы пути.

Parameters:

ПараметрТипОписание
valuejava.util.List<com.aspose.imaging.fileformats.tiff.pathresources.PathResource>ресурсы пути.

removeMetadata()

public void removeMetadata()

Удаляет метаданные этого экземпляра изображения, устанавливая IHasXmpData.XmpData (IHasXmpData.getXmpData/IHasXmpData.setXmpData(XmpPacketWrapper)) и IHasExifData.ExifData(IHasExifData.getExifData/IHasExifData.setExifData(ExifData) IHasExifData.setExifData) в null.

getOriginalOptions()

public ImageOptionsBase getOriginalOptions()

Получает параметры на основе настроек оригинального файла. Это может быть полезно для сохранения глубины цвета и других параметров оригинального изображения без изменений. Например, если мы загружаем чёрно‑белое PNG‑изображение с 1 битом на пиксель и затем сохраняем его с помощью метода DataStreamSupporter.save(String), будет получено PNG‑изображение с 8‑битами на пиксель. Чтобы избежать этого и сохранить PNG‑изображение с 1‑битом на пиксель, используйте этот метод для получения соответствующих параметров сохранения и передайте их методу Image.save(String, ImageOptionsBase) в качестве второго параметра.

Returns: ImageOptionsBase - The options based on the original file settings.

alignResolutions()

public void alignResolutions()

Вспомогательный метод для приведения горизонтального и вертикального разрешений к одинаковому значению.

copyFrame(TiffFrame tiffFrame)

public static TiffFrame copyFrame(TiffFrame tiffFrame)

Копирует весь кадр (дублирует).

Parameters:

ПараметрТипОписание
tiffFrameTiffFrameTIFF‑кадр для копирования.

Returns: TiffFrame - The newly copied tiff frame.

createFrameFrom(TiffFrame tiffFrame, TiffOptions options)

public static TiffFrame createFrameFrom(TiffFrame tiffFrame, TiffOptions options)

Создаёт кадр из указанного tiffFrame, используя указанные options. Данные пикселей сохраняются, но конвертируются в требуемый формат.

Parameters:

ПараметрТипОписание
tiffFrameTiffFrameTIFF‑кадр, из которого создавать.
optionsTiffOptionsНовые параметры для использования.

Returns: TiffFrame - The newly created frame.

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);

// Создать постоянный, а не временный источник файла.
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 {
    // Линейный градиент от левого верхнего до правого нижнего угла изображения.
    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());

    // Заполнить активный кадр кистью линейного градиента.
    com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(tiffImage.getActiveFrame());
    gr.fillRectangle(brush, tiffImage.getBounds());

    // Параметры градаций серого
    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});

    // Создать копию активного кадра в градациях серого.
    // Данные пикселей сохраняются, но конвертируются в требуемый формат.
    com.aspose.imaging.fileformats.tiff.TiffFrame grayscaleFrame
            = com.aspose.imaging.fileformats.tiff.TiffFrame.createFrameFrom(tiffImage.getActiveFrame(), createTiffFrameOptions);

    // Добавить вновь созданный кадр в TIFF‑изображение.
    tiffImage.addFrame(grayscaleFrame);

    tiffImage.save();
} finally {
    tiffImage.dispose();
}

resize(int newWidth, int newHeight, int resizeType)

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

Изменяет размер изображения.

Parameters:

ПараметрТипОписание
newWidthintНовая ширина.
newHeightintНовая высота.
resizeTypeintТип изменения размера.

rotateFlip(int rotateFlipType)

public void rotateFlip(int rotateFlipType)

Поворачивает, отражает или одновременно поворачивает и отражает изображение.

Parameters:

ПараметрТипОписание
rotateFlipTypeintТип поворота и отражения.

rotate(float angle, boolean resizeProportionally, Color backgroundColor)

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

Поворачивает изображение вокруг центра.

Parameters:

ПараметрТипОписание
anglefloatУгол вращения в градусах. Положительные значения вращают по часовой стрелке.
resizeProportionallybooleanЕсли установить true, размер вашего изображения будет изменён в соответствии с проекциями вращённого прямоугольника (угловых точек); в противном случае размеры останутся неизменными, и будет вращено только внутреннее содержимое изображения.
backgroundColorColorЦвет фона.

crop(Rectangle rectangle)

public void crop(Rectangle rectangle)

Обрезка изображения.

Parameters:

ПараметрТипОписание
rectangleRectangleПрямоугольник.