Création, ouverture et enregistrement d'images

Créer des fichiers image

Aspose.PSD pour Java permet aux développeurs de créer leurs propres images. Utilisez la méthode statique Create exposée par la classe Image pour créer de nouvelles images. Tout ce que vous avez à faire est de fournir l’objet approprié d’une des classes de l’espace de noms ImageOptions pour le format d’image de sortie souhaité. Pour créer un fichier image, commencez par créer une instance d’une des classes de l’espace de noms ImageOptions. Ces classes déterminent le format de sortie de l’image. Voici quelques classes de l’espace de noms ImageOptions (notez que seuls les formats de fichier PSD sont actuellement pris en charge pour la création) :

PsdOptions configure les options pour créer un fichier PSD. Les fichiers image peuvent être créés en définissant un chemin de sortie ou en définissant un flux.

Création en définissant un chemin

Créez PsdOptions à partir de l’espace de noms ImageOptions et définissez les différentes propriétés. La propriété la plus importante à définir est la propriété Source. Cette propriété spécifie où se trouvent les données de l’image (dans un fichier ou un flux). Dans l’exemple ci-dessous, la source est un fichier. Après avoir défini les propriétés, passez l’objet à l’une des méthodes Create statiques avec les paramètres de largeur et de hauteur. La largeur et la hauteur sont définies en pixels.

String dataDir = Utils.getDataDir(CreatingbySettingPath.class) + "DrawingAndFormattingImages/";
String desName = dataDir + "CreatingAnImageBySettingPath_out.psd";
// Creates an instance of PsdOptions and set its various properties
PsdOptions psdOptions = new PsdOptions();
psdOptions.setCompressionMethod(CompressionMethod.RLE);
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not
psdOptions.setSource(new FileCreateSource(desName, false));
// Creates an instance of Image and call Create method by passing the PsdOptions object
try (Image image = Image.create(psdOptions, 500, 500)) {
image.save();
}

Création en utilisant un flux

Le processus pour créer une image en utilisant un flux est le même que pour utiliser un chemin. La seule différence est que vous devez créer une instance de StreamSource en passant un objet Stream à son constructeur et en l’assignant à la propriété Source.

String dataDir = Utils.getDataDir(CreatingUsingStream.class) + "DrawingAndFormattingImages/";
String desName = dataDir + "CreatingImageUsingStream_out.bmp";
// Creates an instance of BmpOptions and set its various properties
BmpOptions imageOptions = new BmpOptions();
imageOptions.setBitsPerPixel(24);
// Create an instance of System.IO.Stream
FileCreateSource stream = new FileCreateSource(dataDir + "sample_out.bmp");
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope
imageOptions.setSource(stream);
// Creates an instance of Image and call Create method by passing the BmpOptions object
try (Image image = Image.create(imageOptions, 500, 500)) {
// Do some image processing
image.save(desName);
}

Ouverture des fichiers image

Les développeurs peuvent utiliser l’API Aspose.PSD pour Java pour ouvrir des fichiers image PSD existants à diverses fins, telles que l’ajout d’effets à l’image ou la conversion d’un fichier existant vers un autre format. Quel que soit le but, Aspose.PSD propose deux méthodes standard pour ouvrir des fichiers existants : à partir d’un fichier ou à partir d’un flux.

Ouverture depuis le disque

Ouvrez un fichier image en passant le chemin et le nom du fichier en tant que paramètre à la méthode statique Load exposée par la classe Image.

String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) {
psdImage.save(destName, new PngOptions());
}

Ouverture en utilisant un flux

Parfois, l’image que nous devons ouvrir est stockée sous forme de flux. Dans de tels cas, utilisez la version surchargée de la méthode Load. Cela accepte un objet Stream comme argument pour ouvrir l’image.

String dataDir = Utils.getDataDir(LoadingFromStream.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "result.png";
FileInputStream inputStream = new FileInputStream(sourceFile);
try (Image image = Image.load(inputStream);
PsdImage psdImage = (PsdImage) image) {
MemoryStream stream = new MemoryStream();
FileOutputStream outputStream = new FileOutputStream(sourceFile);
psdImage.save(outputStream, new PngOptions());
}

Charger une image en tant que calque

Cet article montre comment utiliser Aspose.PSD pour charger une image en tant que calque. Les API Aspose.PSD ont exposé des méthodes efficaces et faciles à utiliser pour atteindre cet objectif. Aspose.PSD a exposé la méthode AddLayer de la classe PsdImage pour ajouter une image dans un fichier PSD en tant que calque.

Les étapes pour charger une image dans un PSD en tant que calque sont aussi simples que ci-dessous :

  • Créer une instance d’image en utilisant la classe PsdImage avec une largeur et une hauteur spécifiées.
  • Charger un fichier PSD en tant qu’image en utilisant la méthode statique Load exposée par la classe Image.
  • Créer une instance de la classe Layer et assigner le calque d’image PSD.
  • Ajouter le calque créé en utilisant la méthode AddLayer exposée par la classe PsdImage
  • Enregistrer les résultats.
String dataDir = Utils.getDataDir(LoadImageToPSD.class) + "PSD/";
String filePath = dataDir + "PsdExample.psd";
String outputFilePath = dataDir + "PsdResult.psd";
try (PsdImage image = new PsdImage(200, 200);
Image im = Image.load(filePath)) {
Layer layer = null;
try {
layer = new Layer((RasterImage) im, false);
image.addLayer(layer);
} catch (Exception e) {
if (layer != null) {
layer.dispose();
}
System.out.println(e);
}
}

Enregistrer des fichiers image

Aspose.PSD vous permet de créer des fichiers image à partir de zéro. Il fournit également les moyens de modifier des fichiers image existants. Une fois l’image créée ou modifiée, le fichier est généralement enregistré sur le disque. Aspose.PSD vous fournit des méthodes pour enregistrer des images sur un disque en spécifiant un chemin ou en utilisant un objet Stream.

Enregistrement sur le disque

La classe Image représente un objet image, cette classe fournit tous les outils nécessaires pour créer, charger et enregistrer un fichier image. Utilisez la méthode Save de la classe Image pour enregistrer des images. Une version surchargée de la méthode Save accepte l’emplacement du fichier en tant que chaîne.

String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) {
psdImage.save(destName, new PngOptions());
}

Enregistrement sur un flux

Une autre version surchargée de la méthode Save accepte un objet Stream comme argument et enregistre le fichier image sur le flux.

Si l’image est créée en spécifiant l’une des CreateOptions dans le constructeur de l’Image, l’image est automatiquement enregistrée sur le chemin ou le flux fourni lors de l’initialisation de la classe Image en appelant la méthode Save qui n’accepte aucun paramètre.

String dataDir = Utils.getDataDir(SavingtoStream.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) {
FileOutputStream outputStream = new FileOutputStream(sourceFile);
psdImage.save(outputStream, new PngOptions());
}

Paramètres pour remplacer les polices manquantes

Les développeurs peuvent utiliser l’API Aspose.PSD pour Java pour charger des fichiers image PSD existants à diverses fins, par exemple pour définir le nom de police par défaut lors de l’enregistrement de documents PSD en tant qu’image matricielle (en PNG, JPG et BMP). Cette police par défaut doit être utilisée comme remplacement pour toutes les polices manquantes (polices non trouvées dans le système d’exploitation actuel). Une fois l’image modifiée, le fichier sera enregistré sur le disque.

String dataDir = Utils.getDataDir(SettingforReplacingMissingFonts.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "result.png";
PsdLoadOptions loadOptions = new PsdLoadOptions();
loadOptions.setDefaultReplacementFont("Arial");
// load PSD image and replace the non found fonts.
try (Image image = Image.load(sourceFile, loadOptions);
PsdImage psdImage = (PsdImage) image) {
PngOptions Options = new PngOptions();
Options.setColorType(PngColorType.TruecolorWithAlpha);
psdImage.save(destName, Options);
}