В этом разделе
Tagged Image File Format (TIFF) - это формат файлов для хранения растровых графических изображений, которые обычно поступают со сканеров, программ захвата кадров, программ для ретуширования картинок и фотографий. TIFF-файл может содержать одну или несколько страниц. Размер TIFF-файла не может превышать 4 Гб.
Big TIFF - это расширение формата, в котором размер TIFF-файла может превышать 4 Гб.
VintaSoft Imaging .NET SDK содержит набор классов для удобной работы с TIFF и Big TIFF-файлами.
SDK поддерживает:
- Чтение и запись TIFF и Big TIFF файлов в форматах с little-endian и big-endian порядком следования битов
-
Чтение следующих форматов TIFF изображений:
- черно-белое изображение с глубиной цвета 1 бит
- серое изображение с глубиной цвета от 1 до 32 бит, 64 бит
- палитровое изображение с глубиной цвета от 1 до 16 бит
- RGB-изображение с глубиной цвета от 3 до 96 бит, 128 бит
- RGBA-изображение с глубиной цвета 32 и 64 бита
- CMYK-изображение с глубиной цвета 32 и 64 бита
- CMYKA-изображение с глубиной цвета 40 бит
- YCbCr-изображение с глубиной цвета 8, 16, 24 и 48 бита
- CIELab-изображение с глубиной цвета 24 бита
-
Запись следующих форматов TIFF-изображений:
- черно-белое изображение с глубиной цвета 1 бит
- серое изображение с глубиной цвета 4 и 8 бит
- палитровое изображение с глубиной цвета 1, 4 и 7 бит
- RGB-изображение с глубиной цвета 24 и 48 бит
- RGBA-изображение с глубиной цвета 32 и 64 бита
-
Декодирование TIFF-изображений, сжатых с помощью следующих алгоритмов сжатия данных:
-
Кодирование TIFF изображений с использованием следующих алгоритмов:
Класс TiffFile
Класс
TiffFile позволяет:
Вот C#/VB.NET код, который демонстрирует, как создать новый TIFF-файл в формате little-endian (Intel):
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian);
Dim tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian)
Вот C#/VB.NET код, который демонстрирует, как загрузить существующий TIFF-файл:
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif");
Dim tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif")
Класс TiffPageCollection
Класс
TiffPageCollection позволяет:
Вот C#/VB.NET код, который демонстрирует, как загрузить многостраничный TIFF-файл, добавить JPEG изображение в конец TIFF-файла, вставить PNG изображение в начало TIFF-файла и удалить третью страницу из TIFF-файла:
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif");
tiffFile1.Pages.Add(new Vintasoft.Imaging.VintasoftImage("image.jpg"));
tiffFile1.Pages.Insert(0, new Vintasoft.Imaging.VintasoftImage("image.png"));
tiffFile1.Pages.RemoveAt(2);
tiffFile1.SaveChanges();
Dim tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif")
tiffFile1.Pages.Add(New Vintasoft.Imaging.VintasoftImage("image.jpg"))
tiffFile1.Pages.Insert(0, New Vintasoft.Imaging.VintasoftImage("image.png"))
tiffFile1.Pages.RemoveAt(2)
tiffFile1.SaveChanges()
Класс TiffPage
Класс
TiffPage позволяет:
Для изображений, сохраненных на TIFF странице, поддерживаются следующие алгоритмы сжатия изображений:
- None (чтение/запись)
- CCITT Group 3 fax (чтение)
- CCITT Group 4 fax (чтение/запись)
- CCITT Rle (чтение)
- Macintosh Packbits (чтение)
- LZW (чтение/запись)
- ZIP (чтение/запись)
- Old JPEG (чтение)
- JPEG (чтение/запись)
- JPEG2000 (чтение/запись)
Вот C#/VB.NET код, который демонстрирует, как получить первую страницу TIFF-файла как объект VintasoftImage:
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif");
Vintasoft.Imaging.VintasoftImage pageImage = tiffFile1.Pages[0].GetImage();
Dim tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif")
Dim pageImage As Vintasoft.Imaging.VintasoftImage = tiffFile1.Pages(0).GetImage()
Класс TiffImageFileDirectory
Класс
TiffImageFileDirectory позволяет:
Класс TiffTagCollection
Класс
TiffTagCollection позволяет:
Тег с идентификатором из перечисления
ReadOnlyTiffTagId не может быть добавлен/изменен/удален.
Вот C#/VB.NET код, который демонстрирует, как добавить/изменить/удалить теги TIFF файла:
using (Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(@"image-with-tags.tif"))
{
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagCollection tags = tiffFile1.Pages[0].IFD.Tags;
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.Software, "VintaSoft Imaging .NET SDK v8.2");
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.Make, "VintaSoft LLC.");
tags.Add((ushort)0xE001, "BarcodeInfo");
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime, "2009:03:03 10:20:05");
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.XResolution,
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffRational(100, 1));
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.YResolution,
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffRational(100, 1));
tags.Remove(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.PrintImageMatching);
tiffFile1.SaveChanges();
}
Using tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("image-with-tags.tif")
Dim tags As Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagCollection = tiffFile1.Pages(0).IFD.Tags
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.Software, "VintaSoft Imaging .NET SDK v8.2")
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.Make, "VintaSoft LLC.")
tags.Add(CUShort(&He001), "BarcodeInfo")
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime, "2009:03:03 10:20:05")
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.XResolution, New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffRational(100, 1))
tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.YResolution, New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffRational(100, 1))
tags.Remove(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.PrintImageMatching)
tiffFile1.SaveChanges()
End Using
Класс TiffTag
Класс
TiffTag позволяет:
Вот C#/VB.NET код, который демонстрирует, как добавить/изменить данные тега DateTime первой страницы TIFF-файла:
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile1 =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif");
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTag dateTimeTag =
tiffFile1.Pages[0].IFD.Tags.Find(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime);
if (dateTimeTag != null)
dateTimeTag.Data = "01/09/2013 11:45:51";
else
tiffFile1.Pages[0].IFD.Tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime, "01/09/2013 11:45:51");
tiffFile1.SaveChanges();
Dim tiffFile1 As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile("multipage.tif")
Dim dateTimeTag As Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTag = tiffFile1.Pages(0).IFD.Tags.Find(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime)
If dateTimeTag IsNot Nothing Then
dateTimeTag.Data = "01/09/2013 11:45:51"
Else
tiffFile1.Pages(0).IFD.Tags.Add(Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffTagId.DateTime, "01/09/2013 11:45:51")
End If
tiffFile1.SaveChanges()