Манипулиране на TIFF изображения
Добавяне на рамки с различни настройки
TIFF е много гъвкав формат и позволява добавянето на различни рамки с различни размери, компресия и други настройки. Aspose.PSD APIs ви позволяват да добавяте всяка рамка на TIFF с произволен размер, което помага за създаването на сложни документи. Ако има нужда да се настроят рамките по време на добавянето им, за да бъдат всички рамки еднакви, извършете следните стъпки:
- Създайте нова празна рамка с желаните опции или копирайте изходната рамка с посочените опции за изхода чрез метода CreateFrameFrom.
- Променете размера на изходната рамка/изображение до желаните размери, използвайки метода Resize.
- Добавете пикселите на изходната рамка/изображение към новата рамка.
- Добавете новата рамка към изходното TIFF изображение.
Експортиране на слоеве от PSD изображение към файл във формат TIFF с множество страници
Понякога е необходимо да експортирате слоевете на PSD изображение към файл във формат на TIFF с множество страници. Този документ ще демонстрира как можем да извършим тази задача с помощта на Aspose.PSD за Java API. Първо ще заредим PSD изображение от диск. След това ще итерираме през слоевете на PSD изображението и ще създадем TiffFrame от съответните слоеве. Накрая ще запазим резултиращото TIFF изображение в един файл на диска.
Конфигурация на TiffOptions
Разработчиците могат да настроят различни свойства на класа TiffOptions, за да получат желаните резултати. В този документ ще се фокусираме на 4 основни свойства, които контролират атрибутите на резултиращото изображение.
Тези свойства са изброени по-долу.
- TiffOptions.Compression
- TiffOptions.BitsPerSample
- TiffOptions.Predictor
Когато инициализираме празна структура на TiffOptions, всяка опция се задава на стойността си по подразбиране, например компресията се задава на None, BitsPerSample се задава на 1, а Photometric се задава като MinIsWhite. Запазването в този формат ще направи окончателното изображение черно-бяло, което е очаквано поведение за такива комбинации от опции. За да получите цветни резултати, трябва да зададете всички посочени по-горе свойства на стойности, които съответстват на желания цветови пространствен или можете да инициализирате структурата TiffOptions с предварително зададени настройки, както е обсъдено по-късно в този документ. Предоставена по-долу е таблица, описваща очакваните стойности на параметрите, които може да зададете, за да постигнете желаните резултати. Моля, обърнете внимание, че трябва да зададете всички 4 стълба чрез TiffOptions, за да запазите изображение във формат TIFF.
TiffOptions.Photometric |
TiffOptions.Compression | TiffOptions.BitsPerSample | TiffOptions.Predictor |
---|---|---|---|
Palette | LZW/Uncompressed | 1/4/8/16 (режим на палитра, цветов режим) само един канал | None |
MinIsWhite/MinIsBlack | LZW/Uncompressed | 1/4/8/16 (градационен режим) само един канал | None |
Palette | LZW/Uncompressed | 8 (режим на палитра, цветов режим) само един канал | Horizontal (допълнително ниво на компресия за LZW същите шаблони) |
MinIsWhite/MinIsBlack | LZW/Uncompressed | 8 (градационен режим) само един канал | Horizontal (допълнително ниво на компресия за LZW същите шаблони) |
RGB | LZW/Uncompressed | [8,8,8] (3 RGB канала) | None/Horizontal |
RGB | LZW/Uncompressed | [8,8,8,8] (3 RGB канала и допълнителен алфа канал може да се зададе чрез TiffOptions.AlphaStorage) Фактически всякакъв брой допълнителни канали се поддържат, но всеки канал трябва да има размер от 8 бита, като [8,8,8,8,8,8] | None/Horizontal |
Всички 4 свойства трябва да бъдат зададени чрез TiffOptions, за да запазите изображение във формат на Tiff. При използване на различни комбинации някои прегледачи (включително Прегледача на снимки на Windows) може да откажат да визуализират резултиращото изображение заради ограничената поддръжка, която предлагат. В такъв случай, моля, изберете различен прегледач за вашите тестове. |
Предварително зададени настройки за класа TiffOptions
За да се улесни на потребителите и за да се избегне грешната конфигурация на инстанцията на TiffOptions, Aspose.PSD за Java API излага друг конструктор, който приема параметър от тип TiffExpectedFormat. Въз основа на избраната стойност от избора на TiffExpectedFormat, API автоматично настройва всички задължителни свойства за инстанцията на TiffOptions, за да произведе желаните резултати. Преди да преминем към примерния код, тук е списък с полетата от TiffExpectedFormat и техните детайли за по-добро разбиране на използването.
- TiffExpectedFormat.Default: Задаването на това поле на Default действа подобно на конструктора по подразбиране на класа TiffOptions без зададена компресия и BitsPerPixel заето като 1, за да се получи черно-бял резултат. Препоръчва се да се използва това поле, когато другите формат-специфични свойства трябва да бъдат настроени ръчно според желаните резултати.
- TiffExpectedFormat.TiffCcitRle: Специфично за кодиране RLE при запазване на резултата в TIFF формат с 1 BitsPerPixel (черно и бяло) формат.
- TiffExpectedFormat.TiffCcittFax3: Специфично за кодирането на CCITT Fax3 при запазване на резултата в TIFF формат с 1 BitsPerPixel (черно и бяло) формат.
- TiffExpectedFormat.TiffCcittFax4: Специфично за кодиране на CCITT Fax4 при запазване на резултата в TIFF формат с 1 BitsPerPixel (черно и бяло) формат.
- TiffExpectedFormat.TiffDeflateBW: Специфично за компресия Deflate при запазване на резултата в TIFF формат с 1 BitsPerPixel (черно и бяло) формат.
- TiffExpectedFormat.TiffDeflateRGB: Специфично за компресия Deflate при запазване на резултата в RGB (цветен) TIFF формат.
- TiffExpectedFormat.TiffJpegRGB: Специфично за компресия по Jpeg при запазване на резултата в RGB (цветен) TIFF формат.
- TiffExpectedFormat.TiffJpegYCBCR: Специфично за компресия Deflate при запазване на резултата в YCBCR (цветен) TIFF формат.
- TiffExpectedFormat.TiffLzwBW: Специфично за компресия по LZW при запазване на резултата в TIFF формат с 1 BitsPerPixel (черно и бяло) формат.
- TiffExpectedFormat.TiffLzwRGB: Специфично за компресия по LZW при запазване на резултата в RGB (цветен) TIFF формат.
- TiffExpectedFormat.TiffLzwRGBA: Специфично за компресия по LZW при запазване на резултата в RGBA (цветен с прозрачност) TIFF формат.
- TiffExpectedFormat.TiffNoCompressionBW: Специфично за некомпресиран TIFF формат при запазване на резултата с 1 BitsPerPixel (черно и бяло).
- TiffExpectedFormat.TiffNoCompressionRGB: Специфично за некомпресиран TIFF формат при запазване на резултата в RGB (цветен).
- TiffExpectedFormat.TiffNoCompressionRGBA: Специфично за некомпресиран TIFF формат при запазване на резултата в RGBA (цветен с прозрачност).
Следният кодов отрязък пояснява използването на полетата на TiffExpectedFormat при създаване на инстанция на класа TiffOptions.
Поддръжка на компресия Deflate и Adobe Deflate
Форматът на файл с изображение с маркировка (Tagged Image File Format) поддържа различни видове компресия, като типът на компресията се съхранява като маркировка (цяло число) във файла. Един от такива методи на компресия е Adobe Deflate (предишно известен като Deflate). Aspose.PSD за Java API поддържа този метод на компресия за експортиране и създаване на TIFF изображения.
Запазване на изображение в TIFF с компресия Deflate
Преобразуването на заредените изображения в TIFF с компресия Deflate/Adobe Deflate е лесно както следва.
Създаване на TiffImage с компресия Adobe Deflate
Предоставеният по-долу пример демонстрира използването на Aspose.PSD за Java API за създаване на изображение от нулата с използване на метода за компресия Adobe Deflate.
Компресиране на TIFF изображения
Aspose.PSD за Java API може да се използва за преобразуване на PSD изображения в TIFF формат и дори да променя компресията на резултиращото TIFF изображение. API може също така да се използва за съхранение на различни изображения като рамки в TIFF изображение за архивни цели, докато се компресират изображенията до минимален размер на данните. Компресирането на изображението във всяко случай трябва да се извършва чрез намаляване на размера на изходните данни независимо от използвания компресиращ алгоритъм. За постигане на най-добрия съотношение на компресия може да използвате цветови пространства с палитра. Предоставеният по-долу кодов отрязък извършва най-добрата компресия, използвайки само 16 индексирани цвята и алгоритъм за компресия LZW, макар и изходните цветове да бъдат леко разсечени.