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 | Устанавливает ресурсы пути. |
| 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:
| Параметр | Тип | Описание |
|---|---|---|
| stream | java.io.InputStream | Поток, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра. |
TiffFrame(InputStream stream, TiffOptions options)
public TiffFrame(InputStream stream, TiffOptions options)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| stream | java.io.InputStream | Поток, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра. |
| options | TiffOptions | Параметры, которые следует использовать для вновь созданного кадра. |
TiffFrame(String path)
public TiffFrame(String path)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| path | java.lang.String | Путь, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра. |
TiffFrame(String path, TiffOptions options)
public TiffFrame(String path, TiffOptions options)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| path | java.lang.String | Путь, из которого загружается изображение и с помощью которого инициализируются данные пикселей и палитры кадра. |
| options | TiffOptions | Параметры, которые следует использовать для вновь созданного кадра. |
TiffFrame(RasterImage image)
public TiffFrame(RasterImage image)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| image | RasterImage | Изображение, с помощью которого инициализируются данные пикселей и палитры кадра. |
TiffFrame(RasterImage image, TiffOptions options)
public TiffFrame(RasterImage image, TiffOptions options)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| image | RasterImage | Изображение, с помощью которого инициализируются данные пикселей и палитры кадра. |
| options | TiffOptions | Параметры, которые следует использовать для вновь созданного кадра. |
TiffFrame(TiffOptions options, int width, int height)
public TiffFrame(TiffOptions options, int width, int height)
Инициализирует новый экземпляр класса TiffFrame.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| options | TiffOptions | Параметры кадра. |
| width | int | Ширина. |
| height | int | Высота. |
getBackgroundColor()
public Color getBackgroundColor()
Получает значение фонового цвета.
Returns: Color
setBackgroundColor(Color value)
public void setBackgroundColor(Color value)
Устанавливает значение фонового цвета.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| value | Color |
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:
| Параметр | Тип | Описание |
|---|---|---|
| value | double | Горизонтальное разрешение. |
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:
| Параметр | Тип | Описание |
|---|---|---|
| value | double | Вертикальное разрешение. |
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:
| Параметр | Тип | Описание |
|---|---|---|
| value | java.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:
| Параметр | Тип | Описание |
|---|---|---|
| tiffFrame | TiffFrame | TIFF‑кадр для копирования. |
Returns: TiffFrame - The newly copied tiff frame.
createFrameFrom(TiffFrame tiffFrame, TiffOptions options)
public static TiffFrame createFrameFrom(TiffFrame tiffFrame, TiffOptions options)
Создаёт кадр из указанного tiffFrame, используя указанные options. Данные пикселей сохраняются, но конвертируются в требуемый формат.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| tiffFrame | TiffFrame | TIFF‑кадр, из которого создавать. |
| options | TiffOptions | Новые параметры для использования. |
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:
| Параметр | Тип | Описание |
|---|---|---|
| newWidth | int | Новая ширина. |
| newHeight | int | Новая высота. |
| resizeType | int | Тип изменения размера. |
rotateFlip(int rotateFlipType)
public void rotateFlip(int rotateFlipType)
Поворачивает, отражает или одновременно поворачивает и отражает изображение.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| rotateFlipType | int | Тип поворота и отражения. |
rotate(float angle, boolean resizeProportionally, Color backgroundColor)
public void rotate(float angle, boolean resizeProportionally, Color backgroundColor)
Поворачивает изображение вокруг центра.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| angle | float | Угол вращения в градусах. Положительные значения вращают по часовой стрелке. |
| resizeProportionally | boolean | Если установить true, размер вашего изображения будет изменён в соответствии с проекциями вращённого прямоугольника (угловых точек); в противном случае размеры останутся неизменными, и будет вращено только внутреннее содержимое изображения. |
| backgroundColor | Color | Цвет фона. |
crop(Rectangle rectangle)
public void crop(Rectangle rectangle)
Обрезка изображения.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| rectangle | Rectangle | Прямоугольник. |