Конвертация изображений

Преобразование изображений в черно-белое и градации серого цвета

Иногда вам может потребоваться преобразовать цветные изображения в черно-белые или в оттенки серого для печати или архивирования. В этой статье демонстрируется использование Aspose.PSD для Java API для достижения этого с помощью двух методов, описанных ниже.

  • Двоичное изображение (Binarization)
  • Преобразование в градации серого (Grayscaling)

Двоичное изображение (Binarization)

Для понимания концепции двоичного изображения важно определить, что такое двоичное изображение; это цифровое изображение, у которого каждый пиксель может иметь только два возможных значения. Обычно для двоичного изображения используются два цвета: черный и белый, хотя можно использовать любые два цвета. Двоичное преобразование - это процесс преобразования изображения в двоичное, что означает, что каждый пиксель хранится как один бит (0 или 1), где 0 обозначает отсутствие цвета, а 1 означает наличие цвета. Aspose.PSD для Java API в настоящее время поддерживает два метода двоичного изображения.

Двоичное преобразование с фиксированным порогом (Binarization with Fixed Threshold)

Следующий фрагмент кода показывает, как применить двоичное преобразование с фиксированным порогом к изображению.

Двоичное преобразование с порогом Оцу (Binarization with Otsu Threshold)

Следующий фрагмент кода показывает, как применить двоичное преобразование с порогом Оцу к изображению.

Преобразование в градации серого (Grayscaling)

Градации серого - это процесс преобразования непрерывно-тонового изображения в изображение с разрывными оттенками серого. Следующий фрагмент кода показывает, как использовать градации серого.

Преобразование слоев изображений GIF в изображения TIFF

Иногда необходимо извлечь и преобразовать слои изображения PSD в другой растровый формат изображения для удовлетворения потребностей приложения. Aspose.PSD API поддерживает функцию извлечения и преобразования слоев изображения PSD в другой растровый формат изображения. Сначала мы создадим экземпляр изображения и загрузим изображение PSD с локального диска, затем мы переберем каждый слой в свойстве Layer. Затем мы преобразуем блок в изображение TIFF. Следующий фрагмент кода показывает, как преобразовать слои изображения PSD в изображения TIFF.

Преобразование CMYK PSD в CMYK TIFF

С помощью Aspose.PSD для Java разработчики могут преобразовать файл CMYK PSD в формат CMYK Tiff. В этой статье показано, как экспортировать / конвертировать файл CMYK PSD в формат tiff CMYK с помощью Aspose.PSD. Используя Aspose.PSD для Java, вы можете загружать изображения PSD, задавать различные свойства с помощью класса TiffOptions и сохранять или экспортировать изображение. Следующий фрагмент кода показывает, как реализовать эту функцию.

Экспорт изображений

Вместе с обширным набором процедур обработки изображений, Aspose.PSD предоставляет специализированные классы для преобразования форматов файлов PSD в другие форматы. Используя эту библиотеку, конвертация изображений PSD становится очень простой и интуитивной. Ниже приведены некоторые специализированные классы для этой цели в пространстве имен ImageOptions.

  • BmpOptions
  • GifOptions
  • JpegOptions
  • Jpeg2000Options
  • TiffOptions
  • PngOptions

Экспортировать изображения PSD с помощью Aspose.PSD для Java API легко. Вам просто нужен объект соответствующего класса из пространства имен ImageOptions. Используя эти классы, вы можете легко экспортировать любое изображение, созданное, отредактированное или просто загруженное с помощью Aspose.PSD для Java, в любой поддерживаемый формат.

Комбинирование изображений

Этот пример использует класс Graphics и показывает, как объединить два или более изображений в одно полное изображение. Для демонстрации операции пример создает новое изображение PsdImage и рисует изображения на поверхности холста, используя метод Draw Image, предоставленный классом Graphics. С помощью класса Graphics можно объединить два или более изображения таким образом, что полученное изображение будет выглядеть как целое изображение без промежутков между частями изображения и без страниц. Размер холста должен быть равен размеру полученного изображения. Вот код, который показывает, как использовать метод Draw Image класса Graphics для объединения изображений в одно изображение.

Расширение и обрезка изображений

API Aspose.PSD позволяет вам расширить или обрезать изображение во время процесса преобразования изображения. Разработчику необходимо создать прямоугольник с координатами X и Y, а также указать ширину и высоту прямоугольного блока. X, Y и ширина, высота прямоугольника будут показывать расширение или обрезку загруженного изображения. Если требуется расширить или обрезать изображение во время преобразования изображения, выполните следующие шаги:

  1. Создайте экземпляр класса RasterImage и загрузите существующее изображение.
  2. Создайте экземпляр класса ImageOption.
  3. Создайте экземпляр класса Rectangle и инициализируйте X, Y и ширину, высоту прямоугольника.
  4. Вызовите метод Save класса RasterImage, передав имя файла вывода, параметры изображения и объект прямоугольника в качестве параметров.

Чтение и запись метаданных XMP в изображения

XMP (Extensible Metadata Platform) является стандартом ISO. XMP стандартизирует модель данных, формат сериализации и основные свойства для определения и обработки расширенных метаданных. Он также предоставляет рекомендации по встраиванию информации XMP в популярные изображения, такие как JPEG, без нарушения их читаемости приложениями, не поддерживающими XMP. С помощью Aspose.PSD для Java API разработчики могут читать или записывать метаданные XMP в изображения. Эта статья демонстрирует, как метаданные XMP могут быть прочитаны из изображения и записаны в изображения.

Создание метаданных XMP, запись и чтение из файла

С помощью пространства имен XMP разработчик может создать объект метаданных XMP и записать его в изображение. Следующий фрагмент кода показывает, как использовать пакеты XmpHeaderPi, XmpTrailerPi, XmpMeta, XmpPacketWrapper, PhotoshopPackage и DublinCorePackage, содержащиеся в пространстве имен XMP.

Экспорт изображений в многопоточной среде

Aspose.PSD для Java теперь поддерживает преобразование изображений в многопоточной среде. Aspose.PSD для Java гарантирует оптимизированную производительность операций во время выполнения кода в многопоточной среде. Все классы параметров изображения (например, BmpOptions, TiffOptions, JpegOptions и т. д.) в Aspose.PSD для Java реализуют интерфейс IDisposable. Поэтому необходимо правильно уничтожить объект класса параметров изображения в случае, если установлено свойство Source. Следующий фрагмент кода демонстрирует указанную функциональность.

Теперь Aspose.PSD поддерживает свойство SyncRoot при работе в многопоточной среде. Разработчик может использовать это свойство для синхронизации доступа к источнику данных. Следующий фрагмент кода демонстрирует, как можно использовать свойство SyncRoot.