Обработка данных XMP в изображениях с помощью Aspose.Imaging для Java
Aspose.Imaging for Java — универсальная и мощная библиотека для работы с изображениями различных форматов. Из этого руководства вы узнаете, как обрабатывать данные XMP (расширяемая платформа метаданных) в изображениях с помощью Aspose.Imaging for Java. XMP — это стандарт для встраивания метаданных в файлы изображений, позволяющий хранить ценную информацию, такую как автор, описание и многое другое.
Предварительные условия
Прежде чем начать, убедитесь, что у вас есть следующие предварительные условия:
- На вашем компьютере установлена среда разработки Java.
- Установлена библиотека Aspose.Imaging for Java. Вы можете скачать его с сайта Веб-сайт Aspose.Imaging for Java .
- Базовое понимание программирования на Java.
Импорт пакетов
Начните с импорта необходимых пакетов в ваш Java-проект. Вы можете добавить следующие операторы импорта в начало вашего кода:
import com.aspose.imaging.Image;
import com.aspose.imaging.Rectangle;
import com.aspose.imaging.imageoptions.TiffOptions;
import com.aspose.imaging.xmp.XmpPackage;
import com.aspose.imaging.xmp.XmpPacketWrapper;
import com.aspose.imaging.xmp.XmpMeta;
import com.aspose.imaging.xmp.photoshop.ColorMode;
import com.aspose.imaging.xmp.photoshop.PhotoshopPackage;
import com.aspose.imaging.xmp.dc.DublinCorePackage;
import com.aspose.imaging.xmp.header.XmpHeaderPi;
import com.aspose.imaging.xmp.trailer.XmpTrailerPi;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
Теперь давайте разобьем пример на пошаговое руководство:
Шаг 1. Укажите размер изображения и параметры Tiff.
Сначала определите каталог, в котором будет храниться ваше изображение, и создайте прямоугольник, чтобы указать размер изображения. В этом примере мы используем изображение Tiff с определенными параметрами.
String dataDir = "Your Document Directory" + "ConvertingImages/";
Rectangle rect = new Rectangle(0, 0, 100, 200);
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.TiffJpegRgb);
tiffOptions.setPhotometric(TiffPhotometrics.MinIsBlack);
tiffOptions.setBitsPerSample(new int[] { 8 });
Шаг 2. Создайте новое изображение
Теперь создайте новое изображение с указанными параметрами. Это изображение будет использоваться для хранения метаданных XMP.
try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight()))) {
Шаг 3. Создайте заголовок и трейлер XMP
Создайте экземпляры XMP-Header и XMP-Trailer для ваших метаданных XMP. Эти заголовки и трейлеры помогают определить структуру метаданных.
XmpHeaderPi xmpHeader = new XmpHeaderPi();
xmpHeader.setGuid(dataDir);
XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
Шаг 4. Создайте метаинформацию XMP
Теперь создайте экземпляр мета XMP для установки различных атрибутов. Вы можете добавить такую информацию, как автор и описание.
XmpMeta xmpMeta = new XmpMeta();
xmpMeta.addAttribute("Author", "Mr Smith");
xmpMeta.addAttribute("Description", "The fake metadata value");
Шаг 5. Создайте оболочку пакета XMP
Создайте экземпляр XmpPacketWrapper, содержащий заголовок XMP, трейлер и метаинформацию.
XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);
Шаг 6. Добавьте пакет Photoshop
Чтобы сохранить информацию, специфичную для Photoshop, создайте пакет Photoshop и установите его атрибуты, такие как город, страна и цветовой режим. Затем добавьте этот пакет в метаданные XMP.
PhotoshopPackage photoshopPackage = new PhotoshopPackage();
photoshopPackage.setCity("London");
photoshopPackage.setCountry("England");
photoshopPackage.setColorMode(ColorMode.Rgb);
xmpData.addPackage(photoshopPackage);
Шаг 7. Добавьте основной пакет Dublin
Для получения более общей информации, такой как автор, название и дополнительные значения, создайте пакет DublinCore и установите его атрибуты. Добавьте также этот пакет в метаданные XMP.
DublinCorePackage dublinCorePackage = new DublinCorePackage();
dublinCorePackage.setAuthor("Charles Bukowski");
dublinCorePackage.setTitle("Confessions of a Man Insane Enough to Live With the Beasts");
dublinCorePackage.addValue("dc:movie", "Barfly");
xmpData.addPackage(dublinCorePackage);
Шаг 8. Обновите метаданные XMP в образе.
Обновите метаданные XMP в образе, используя командуsetXmpData
метод.
ByteArrayOutputStream ms = new ByteArrayOutputStream();
image.setXmpData(xmpData);
Шаг 9: Сохраните изображение
Теперь вы можете сохранить изображение со встроенными метаданными XMP на диске или в потоке памяти.
image.save(ms);
Шаг 10. Загрузите изображение и получите метаданные XMP.
Чтобы получить метаданные XMP из изображения, загрузите изображение из потока памяти или диска и получите доступ к данным XMP.
try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray()))) {
XmpPacketWrapper imgXmpData = img.getXmpData();
for (XmpPackage pack : imgXmpData.getPackages()) {
// Использовать данные пакета...
}
}
}
Поздравляем! Вы успешно научились обрабатывать данные XMP в изображениях с помощью Aspose.Imaging for Java. Это позволяет вам хранить и извлекать ценные метаданные в файлах изображений.
Заключение
В этом уроке мы рассмотрели, как работать с метаданными XMP в изображениях с помощью Aspose.Imaging для Java. Следуя пошаговому руководству, вы сможете легко встраивать и извлекать метаданные в файлы изображений, повышая их информативность и удобство использования.
Часто задаваемые вопросы
Вопрос 1. Что такое метаданные XMP?
О1: XMP (Расширяемая платформа метаданных) — это стандарт для встраивания метаданных в файлы различных типов, включая изображения. Он позволяет хранить такую информацию, как автор, название, описание и многое другое, внутри самого файла.
Вопрос 2. Почему метаданные XMP важны?
Ответ 2. Метаданные XMP необходимы для организации и классификации цифровых активов. Это помогает определить право собственности, описать контент и добавить контекст к файлам, например изображениям, делая их более доступными и значимыми.
Вопрос 3. Могу ли я редактировать метаданные XMP после встраивания их в изображение?
О3: Да, вы можете редактировать метаданные XMP после встраивания их в изображение. Aspose.Imaging for Java предоставляет инструменты для изменения и обновления атрибутов метаданных по мере необходимости.
Вопрос 4. Является ли Aspose.Imaging for Java бесплатным инструментом?
О4: Aspose.Imaging for Java предлагает бесплатную пробную версию, но для полной функциональности и расширенного использования требуется платная лицензия. Вы можете изучить варианты на Веб-сайт Aspose.Imaging for Java .
Вопрос 5: Где я могу получить помощь и поддержку по Aspose.Imaging for Java?
О5: Если у вас возникнут какие-либо проблемы или возникнут вопросы, связанные с Aspose.Imaging for Java, вы можете посетить Форумы Aspose.Imaging за поддержку и руководство сообщества.
Полный исходный код
String dataDir = "Your Document Directory" + "ConvertingImages/";
// Укажите размер изображения, определив прямоугольник.
Rectangle rect = new Rectangle(0, 0, 100, 200);
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.TiffJpegRgb);
tiffOptions.setPhotometric(TiffPhotometrics.MinIsBlack);
tiffOptions.setBitsPerSample(new int[] { 8 });
// создайте новое изображение только для примера
try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight())))
{
// создать экземпляр XMP-заголовка
XmpHeaderPi xmpHeader = new XmpHeaderPi();
xmpHeader.setGuid(dataDir);
// создать экземпляр Xmp-TrailerPi
XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
// создайте экземпляр метакласса XMP для установки различных атрибутов
XmpMeta xmpMeta = new XmpMeta();
xmpMeta.addAttribute("Author", "Mr Smith");
xmpMeta.addAttribute("Description", "The fake metadata value");
//создайте экземпляр XmpPacketWrapper, содержащий все метаданные
XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);
// создайте экземпляр пакета Photoshop и установите атрибуты Photoshop
PhotoshopPackage photoshopPackage = new PhotoshopPackage();
photoshopPackage.setCity("London");
photoshopPackage.setCountry("England");
photoshopPackage.setColorMode(ColorMode.Rgb);
// добавить пакет фотошопа в метаданные XMP
xmpData.addPackage(photoshopPackage);
// создайте экземпляр пакета DublinCore и установите атрибуты dublinCore
DublinCorePackage dublinCorePackage = new DublinCorePackage();
dublinCorePackage.setAuthor("Charles Bukowski");
dublinCorePackage.setTitle("Confessions of a Man Insane Enough to Live With the Beasts");
dublinCorePackage.addValue("dc:movie", "Barfly");
// добавить пакет dublinCore в метаданные XMP
xmpData.addPackage(dublinCorePackage);
ByteArrayOutputStream ms = new ByteArrayOutputStream();
// обновить метаданные XMP в изображение
image.setXmpData(xmpData);
// Сохранение изображения на диске или в потоке памяти
image.save(ms);
// Загрузите изображение из потока памяти или с диска, чтобы прочитать/получить метаданные.
try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray())))
{
// Получение метаданных XMP
XmpPacketWrapper imgXmpData = img.getXmpData();
for (XmpPackage pack : imgXmpData.getPackages())
{
// Использовать данные пакета...
}
}
}