Zpracování dat XMP v obrázcích pomocí Aspose.Imaging pro Java
Aspose.Imaging for Java je všestranná a výkonná knihovna pro práci s obrázky v různých formátech. Tento tutoriál vás provede procesem zpracování dat XMP (Extensible Metadata Platform) v obrázcích pomocí Aspose.Imaging for Java. XMP je standard pro vkládání metadat do obrazových souborů, což vám umožňuje ukládat cenné informace, jako je autor, popis a další.
Předpoklady
Než začnete, ujistěte se, že máte splněny následující předpoklady:
- Vývojové prostředí Java nastavené na vašem počítači.
- Nainstalovaná knihovna Aspose.Imaging for Java. Můžete si jej stáhnout z Aspose.Imaging pro webové stránky Java .
- Základní znalost programování v Javě.
Import balíčků
Začněte importováním potřebných balíčků do vašeho projektu Java. Na začátek kódu můžete přidat následující příkazy pro import:
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;
Nyní rozeberme příklad do podrobného průvodce:
Krok 1: Zadejte možnosti Velikost obrázku a Tiff
Nejprve definujte adresář, kde bude váš obrázek uložen, a vytvořte obdélník pro určení velikosti obrázku. V tomto příkladu používáme obrázek Tiff s určitými možnostmi.
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 });
Krok 2: Vytvořte nový obrázek
Nyní vytvořte nový obrázek se zadanými možnostmi. Tento obrázek bude použit k uložení metadat XMP.
try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight()))) {
Krok 3: Vytvořte XMP záhlaví a upoutávku
Vytvořte instance XMP-Header a XMP-Trailer pro vaše metadata XMP. Tato záhlaví a upoutávky pomáhají definovat strukturu metadat.
XmpHeaderPi xmpHeader = new XmpHeaderPi();
xmpHeader.setGuid(dataDir);
XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
Krok 4: Vytvořte metainformace XMP
Nyní vytvořte instanci XMP meta pro nastavení různých atributů. Můžete přidat informace, jako je autor a popis.
XmpMeta xmpMeta = new XmpMeta();
xmpMeta.addAttribute("Author", "Mr Smith");
xmpMeta.addAttribute("Description", "The fake metadata value");
Krok 5: Vytvořte XMP Packet Wrapper
Vytvořte instanci XmpPacketWrapper, která obsahuje záhlaví XMP, upoutávku a metainformace.
XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);
Krok 6: Přidejte balíček Photoshopu
Chcete-li uložit informace specifické pro Photoshop, vytvořte balíček Photoshopu a nastavte jeho atributy, jako je město, země a barevný režim. Poté přidejte tento balíček do metadat XMP.
PhotoshopPackage photoshopPackage = new PhotoshopPackage();
photoshopPackage.setCity("London");
photoshopPackage.setCountry("England");
photoshopPackage.setColorMode(ColorMode.Rgb);
xmpData.addPackage(photoshopPackage);
Krok 7: Přidejte balíček Dublin Core
Pro obecnější informace, jako je autor, název a další hodnoty, vytvořte balíček DublinCore a nastavte jeho atributy. Přidejte tento balíček také do metadat 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);
Krok 8: Aktualizujte metadata XMP v obrázku
Aktualizujte metadata XMP do obrázku pomocísetXmpData
metoda.
ByteArrayOutputStream ms = new ByteArrayOutputStream();
image.setXmpData(xmpData);
Krok 9: Uložte obrázek
Nyní můžete uložit obrázek s vloženými metadaty XMP na disk nebo do paměťového toku.
image.save(ms);
Krok 10: Načtěte obrázek a načtěte metadata XMP
Chcete-li získat metadata XMP z obrázku, načtěte obrázek z paměťového toku nebo disku a získejte přístup k datům XMP.
try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray()))) {
XmpPacketWrapper imgXmpData = img.getXmpData();
for (XmpPackage pack : imgXmpData.getPackages()) {
// Použít data balíčku...
}
}
}
Gratulujeme! Úspěšně jste se naučili, jak zacházet s daty XMP v obrázcích pomocí Aspose.Imaging for Java. To vám umožňuje ukládat a získávat cenná metadata v rámci vašich obrazových souborů.
Závěr
V tomto tutoriálu jsme prozkoumali, jak pracovat s metadaty XMP v obrázcích pomocí Aspose.Imaging for Java. Podle tohoto podrobného průvodce můžete snadno vkládat a načítat metadata do svých obrazových souborů, čímž se zvýší jejich informace a použitelnost.
FAQ
Q1: Co jsou metadata XMP?
A1: XMP (Extensible Metadata Platform) je standard pro vkládání metadat do různých typů souborů, včetně obrázků. Umožňuje vám ukládat informace, jako je autor, název, popis a další, v rámci samotného souboru.
Q2: Proč jsou metadata XMP důležitá?
Odpověď 2: Metadata XMP jsou nezbytná pro organizaci a kategorizaci digitálních aktiv. Pomáhá při přiřazování vlastnictví, popisu obsahu a přidávání kontextu k souborům, jako jsou obrázky, díky čemuž jsou přístupnější a smysluplnější.
Otázka 3: Mohu upravit metadata XMP po jejich vložení do obrázku?
Odpověď 3: Ano, metadata XMP můžete upravit po jejich vložení do obrázku. Aspose.Imaging for Java poskytuje nástroje pro úpravu a aktualizaci atributů metadat podle potřeby.
Q4: Je Aspose.Imaging for Java bezplatný nástroj?
A4: Aspose.Imaging for Java nabízí bezplatnou zkušební verzi, ale pro plnou funkčnost a rozšířené použití je vyžadována placená licence. Možnosti můžete prozkoumat na Aspose.Imaging pro webové stránky Java .
Q5: Kde mohu získat pomoc a podporu pro Aspose.Imaging pro Java?
A5: Pokud narazíte na nějaké problémy nebo máte dotazy týkající se Aspose.Imaging pro Java, můžete navštívit stránku Aspose.Imaging fóra za podporu a vedení komunity.
Kompletní zdrojový kód
String dataDir = "Your Document Directory" + "ConvertingImages/";
// Určete velikost obrázku definováním obdélníku
Rectangle rect = new Rectangle(0, 0, 100, 200);
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.TiffJpegRgb);
tiffOptions.setPhotometric(TiffPhotometrics.MinIsBlack);
tiffOptions.setBitsPerSample(new int[] { 8 });
// vytvořit zbrusu nový obrázek pouze pro účely vzorku
try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight())))
{
// vytvořit instanci XMP-Header
XmpHeaderPi xmpHeader = new XmpHeaderPi();
xmpHeader.setGuid(dataDir);
// vytvořit instanci Xmp-TrailerPi
XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
// vytvořte instanci meta třídy XMP pro nastavení různých atributů
XmpMeta xmpMeta = new XmpMeta();
xmpMeta.addAttribute("Author", "Mr Smith");
xmpMeta.addAttribute("Description", "The fake metadata value");
//vytvořte instanci XmpPacketWrapper, která obsahuje všechna metadata
XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);
// vytvořte instanci balíku Photoshop a nastavte atributy Photoshopu
PhotoshopPackage photoshopPackage = new PhotoshopPackage();
photoshopPackage.setCity("London");
photoshopPackage.setCountry("England");
photoshopPackage.setColorMode(ColorMode.Rgb);
// přidat balíček photoshop do metadat XMP
xmpData.addPackage(photoshopPackage);
// vytvořte instanci balíčku DublinCore a nastavte atributy 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");
// přidat balíček dublinCore do metadat XMP
xmpData.addPackage(dublinCorePackage);
ByteArrayOutputStream ms = new ByteArrayOutputStream();
// aktualizovat metadata XMP na obrázek
image.setXmpData(xmpData);
// Uložit obrázek na disk nebo do paměti
image.save(ms);
// Chcete-li číst/získat metadata, načtěte obrázek z paměti nebo z disku
try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray())))
{
// Získání metadat XMP
XmpPacketWrapper imgXmpData = img.getXmpData();
for (XmpPackage pack : imgXmpData.getPackages())
{
// Použít data balíčku...
}
}
}