XMP adatkezelés képekben az Aspose.Imaging for Java segítségével

Az Aspose.Imaging for Java egy sokoldalú és hatékony könyvtár a különféle formátumú képekkel való munkavégzéshez. Ez az oktatóanyag végigvezeti Önt a képekben lévő XMP (Extensible Metadata Platform) adatok kezelésének folyamatán az Aspose.Imaging for Java használatával. Az XMP a metaadatok képfájlokba való beágyazásának szabványa, amely lehetővé teszi olyan értékes információk tárolását, mint a szerző, leírás stb.

Előfeltételek

Mielőtt elkezdené, győződjön meg arról, hogy a következő előfeltételeket teljesítette:

  • A számítógépen beállított Java fejlesztői környezet.
  • Aspose.Imaging for Java könyvtár telepítve. Letöltheti aAspose.Imaging for Java webhely.
  • Alapvető ismeretek a Java programozásról.

Csomagok importálása

Kezdje azzal, hogy importálja a szükséges csomagokat a Java projektbe. A következő importálási utasításokat adhatja hozzá a kód elejéhez:

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;

Most bontsuk le a példát egy lépésről lépésre útmutatóra:

1. lépés: Adja meg a képméretet és a tiff-beállításokat

Először határozza meg a könyvtárat, ahol a kép tárolni fogja, és hozzon létre egy téglalapot a kép méretének megadásához. Ebben a példában egy Tiff képet használunk bizonyos beállításokkal.

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. lépés: Hozzon létre egy új képet

Most hozzon létre egy új képet a megadott beállításokkal. Ez a kép az XMP metaadatok tárolására szolgál.

try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight()))) {

3. lépés: Hozzon létre XMP fejlécet és előzetest

Hozzon létre XMP-Header és XMP-Trailer példányokat az XMP metaadataihoz. Ezek a fejlécek és előzetesek segítenek meghatározni a metaadat-struktúrát.

    XmpHeaderPi xmpHeader = new XmpHeaderPi();
    xmpHeader.setGuid(dataDir);
    
    XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);

4. lépés: Hozzon létre XMP metainformációt

Most hozzon létre egy XMP meta példányt a különböző attribútumok beállításához. Hozzáadhat információkat, például a szerzőt és a leírást.

    XmpMeta xmpMeta = new XmpMeta();
    xmpMeta.addAttribute("Author", "Mr Smith");
    xmpMeta.addAttribute("Description", "The fake metadata value");

5. lépés: Hozzon létre XMP Packet Wrappert

Hozzon létre egy XmpPacketWrapper példányt, amely tartalmazza az XMP fejlécet, előzetesét és metainformációit.

    XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);

6. lépés: Photoshop-csomag hozzáadása

Photoshop-specifikus információk tárolásához hozzon létre egy Photoshop-csomagot, és állítsa be annak attribútumait, például a várost, az országot és a színmódot. Ezután adja hozzá ezt a csomagot az XMP metaadatokhoz.

    PhotoshopPackage photoshopPackage = new PhotoshopPackage();
    photoshopPackage.setCity("London");
    photoshopPackage.setCountry("England");
    photoshopPackage.setColorMode(ColorMode.Rgb);
    xmpData.addPackage(photoshopPackage);

7. lépés: Adja hozzá a Dublin Core csomagot

Általánosabb információkért, például szerző, cím és további értékekért hozzon létre egy DublinCore-csomagot, és állítsa be annak attribútumait. Adja hozzá ezt a csomagot az XMP metaadatokhoz is.

    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. lépés: Frissítse az XMP metaadatokat a képen

Frissítse az XMP metaadatokat a képbe asetXmpData módszer.

    ByteArrayOutputStream ms = new ByteArrayOutputStream();
    image.setXmpData(xmpData);

9. lépés: Mentse el a képet

Most már mentheti a képet a beágyazott XMP-metaadatokkal a lemezre vagy egy memóriafolyamba.

    image.save(ms);

10. lépés: Töltse be a képet és kérje le az XMP metaadatokat

Az XMP-metaadatok lekéréséhez a képről töltse be a képet a memóriafolyamról vagy a lemezről, és nyissa meg az XMP-adatokat.

    try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray()))) {
        XmpPacketWrapper imgXmpData = img.getXmpData();
        for (XmpPackage pack : imgXmpData.getPackages()) {
            // Csomagadatok használata...
        }
    }
}

Gratulálunk! Sikeresen megtanulta, hogyan kell XMP-adatokat kezelni képekben az Aspose.Imaging for Java segítségével. Ez lehetővé teszi értékes metaadatok tárolását és visszakeresését a képfájlokban.

Következtetés

Ebben az oktatóanyagban megvizsgáltuk, hogyan dolgozhatunk XMP-metaadatokkal a képekben az Aspose.Imaging for Java segítségével. A lépésenkénti útmutató követésével könnyedén beágyazhat és visszakereshet metaadatokat képfájljaiba, javítva azok információit és használhatóságát.

GYIK

1. kérdés: Mi az XMP metaadat?

  1. válasz: Az XMP (Extensible Metadata Platform) egy szabvány a metaadatok különféle típusú fájlokba, köztük képekbe ágyazására. Lehetővé teszi, hogy magában a fájlban tároljon információkat, például szerzőt, címet, leírást és egyebeket.

2. kérdés: Miért fontosak az XMP metaadatok?

  1. válasz: Az XMP metaadatok elengedhetetlenek a digitális eszközök rendszerezéséhez és kategorizálásához. Segít a tulajdonjog hozzárendelésében, a tartalom leírásában, valamint a fájlok, például a képek kontextusának meghatározásában, hozzáférhetőbbé és értelmesebbé téve azokat.

3. kérdés: Szerkeszthetem az XMP metaadatokat, miután beágyaztam egy képbe?

  1. válasz: Igen, szerkesztheti az XMP metaadatokat, miután beágyazta őket egy képbe. Az Aspose.Imaging for Java eszközöket biztosít a metaadat-attribútumok szükség szerinti módosításához és frissítéséhez.

4. kérdés: Az Aspose.Imaging for Java ingyenes eszköz?

  1. válasz: Az Aspose.Imaging for Java ingyenes próbaverziót kínál, de a teljes funkcionalitás és a kiterjesztett használat érdekében fizetős licenc szükséges. A lehetőségeket aAspose.Imaging for Java webhely.

5. kérdés: Hol kaphatok segítséget és támogatást az Aspose.Imaging for Java-hoz?

  1. válasz: Ha bármilyen problémába ütközik, vagy kérdései vannak az Aspose.Imaging for Java-val kapcsolatban, keresse fel aAspose.Képalkotó fórumok közösségi támogatásért és útmutatásért.

Teljes forráskód

        
String dataDir = "Your Document Directory" + "ConvertingImages/";
// Adja meg a kép méretét egy téglalap megadásával
Rectangle rect = new Rectangle(0, 0, 100, 200);
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.TiffJpegRgb);
tiffOptions.setPhotometric(TiffPhotometrics.MinIsBlack);
tiffOptions.setBitsPerSample(new int[] { 8 });
// hozza létre a vadonatúj képet csak minta céljából
try (TiffImage image = new TiffImage(new TiffFrame(tiffOptions, rect.getWidth(), rect.getHeight())))
{
	// hozzon létre egy XMP-Header példányt
	XmpHeaderPi xmpHeader = new XmpHeaderPi();
	xmpHeader.setGuid(dataDir);
	// hozzon létre egy Xmp-TrailerPi példányt
	XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
	// hozzon létre egy XMP metaosztály példányt a különböző attribútumok beállításához
	XmpMeta xmpMeta = new XmpMeta();
	xmpMeta.addAttribute("Author", "Mr Smith");
	xmpMeta.addAttribute("Description", "The fake metadata value");
	//hozzon létre egy XmpPacketWrapper példányt, amely tartalmazza az összes metaadatot
	XmpPacketWrapper xmpData = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);
	// hozzon létre egy példányt a Photoshop csomagból, és állítsa be a Photoshop attribútumokat
	PhotoshopPackage photoshopPackage = new PhotoshopPackage();
	photoshopPackage.setCity("London");
	photoshopPackage.setCountry("England");
	photoshopPackage.setColorMode(ColorMode.Rgb);
	// Photoshop-csomag hozzáadása az XMP metaadatokhoz
	xmpData.addPackage(photoshopPackage);
	// hozzon létre egy DublinCore-csomag példányt, és állítsa be a dublinCore attribútumokat
	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 Package hozzáadása az XMP metaadatokhoz
	xmpData.addPackage(dublinCorePackage);
	ByteArrayOutputStream ms = new ByteArrayOutputStream();
	// frissítse az XMP metaadatokat képpé
	image.setXmpData(xmpData);
	// Mentse a képet a lemezre vagy a memóriafolyamba
	image.save(ms);
	// A metaadatok olvasásához/lekéréséhez töltse be a képet a memóriafolyamból vagy a lemezről
	try (TiffImage img = (TiffImage) Image.load(new ByteArrayInputStream(ms.toByteArray())))
	{
		// Az XMP metaadatok lekérése
		XmpPacketWrapper imgXmpData = img.getXmpData();
		for (XmpPackage pack : imgXmpData.getPackages())
		{
			// Csomagadatok használata...
		}
	}
}