Notes de publication Aspose.PSD pour Java 24.6
Contents
[
Hide
]
Cette page contient les notes de publication pour Aspose.PSD pour Java 24.6
Clé | Résumé | Catégorie |
---|---|---|
PSDJAVA-628 | Implémenter le support de la calque de carte de dégradé | Fonctionnalité |
PSDJAVA-629 | [Format AI] Ajouter le support des métadonnées XPacket au format AI | Fonctionnalité |
PSDJAVA-630 | Implémenter les types de déformation Inflate, Squeeze et Twist | Fonctionnalité |
PSDJAVA-631 | Les modes Rgb et Lab ne peuvent pas contenir moins de 3 canaux ni plus de 4 canaux dans le fichier avec des calques ArtBoard | Problème |
PSDJAVA-632 | La zone de traitement supérieure doit être positive. (Paramètre ‘areaToProcess’) lors du traitement d’un fichier spécifique | Problème |
PSDJAVA-633 | L’image étendue sur le canevas est rognée après l’enregistrement. Les données sont perdues mais l’aperçu est correct | Problème |
Changements dans l’API publique
APIs ajoutées :
- M:com.aspose.psd.fileformats.ai.AiImage.getXmpData
- M:com.aspose.psd.fileformats.psd.PsdImage.addGradientMapAdjustmentLayer
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GrdmResource.setMaximumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GrdmResource.setMinimumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
- T:com.aspose.psd.fileformats.psd.layers.adjustmentlayers.GradientMapLayer
- M:com.aspose.psd.fileformats.psd.layers.adjustmentlayers.GradientMapLayer.setGradientSettings(com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings)
- M:com.aspose.psd.fileformats.psd.layers.adjustmentlayers.GradientMapLayer.getGradientSettings
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getExpansionCount
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setExpansionCount(short)
- T:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.#ctor
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.gradientKindToStr(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.noiseColorModelToInt(short)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.noiseColorModelToStr(short)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.intToNoiseColorModel(short)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.strToGradientKind(java.lang.String)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.strToNoiseColorModel(java.lang.String)
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.StrGradientNoise
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.StrGradientSolid
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.StrModelHSB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.StrModelLAB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.StrModelRGB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.IntModelRGB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.IntModelLAB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GradientHelper.IntModelHSB
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getGradientName
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setGradientName(java.lang.String)
APIs supprimées :
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getGradientName
- M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setGradientName(java.lang.String)
- T:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.#ctor
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.gradientKindToStr(int)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.noiseColorModelToStr(short)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.strToGradientKind(java.lang.String)
- M:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.strToNoiseColorModel(java.lang.String)
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.StrGradientNoise
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.StrGradientSolid
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.StrModelHSB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.StrModelLAB
- F:com.aspose.psd.fileformats.psd.layers.layerresources.GdflResourceHelper.StrModelRGB
Exemples d’utilisation :
PSDJAVA-628. Implémenter le support de la calque de carte de dégradé
public static void main(String[] args) {
String fichierSource = "src/main/resources/gradient_map_src.psd";
String fichierSortie = "src/main/resources/gradient_map_src_output.psd";
try (PsdImage im = (PsdImage) Image.load(fichierSource)) {
// Ajouter un calque d'ajustement de carte de dégradé.
GradientMapLayer calque = im.addGradientMapAdjustmentLayer();
calque.getGradientSettings().setReverse(true);
im.save(fichierSortie);
}
// Vérifier les modifications enregistrées
try (PsdImage im = (PsdImage) Image.load(fichierSortie)) {
GradientMapLayer calqueCarteDegradé = (GradientMapLayer) im.getLayers()[1];
GradientFillSettings paramètresGradient = (GradientFillSettings) calqueCarteDegradé.getGradientSettings();
assertAreEqual(0.0, paramètresGradient.getAngle());
assertAreEqual((short) 4096, paramètresGradient.getInterpolation());
assertAreEqual(true, paramètresGradient.getReverse());
assertAreEqual(false, paramètresGradient.getAlignWithLayer());
assertAreEqual(false, paramètresGradient.getDither());
assertAreEqual(GradientType.Linear, paramètresGradient.getGradientType());
assertAreEqual(100, paramètresGradient.getScale());
assertAreEqual(0.0, paramètresGradient.getHorizontalOffset());
assertAreEqual(0.0, paramètresGradient.getVerticalOffset());
assertAreEqual("Custom", paramètresGradient.getGradientName());
}
}
static void assertAreEqual(Object attendu, Object réel) {
assertAreEqual(attendu, réel, "Les objets ne sont pas égaux.");
}
static void assertAreEqual(Object attendu, Object réel, String message) {
if (!attendu.equals(réel)) {
throw new IllegalArgumentException(message);
}
}
PSDJAVA-629. [Format AI] Ajouter le support des métadonnées XPacket au format AI
public static void main(String[] args) {
String fichierSource = "src/main/resources/ai_one.ai";
String cléOutilCréateur = ":CreatorTool";
String cléNPages = "xmpTPg:NPages";
String cléUnité = "stDim:unit";
String cléHauteur = "stDim:h";
String cléLargeur = "stDim:w";
String outilCréateurAttendu = "Adobe Illustrator CC 22.1 (Windows)";
String nPagesAttendu = "1";
String unitéAttendue = "Pixels";
double hauteurAttendue = 768;
double largeurAttendue = 1366;
try (AiImage image = (AiImage) Image.load(fichierSource)) {
// Les métadonnées Xmp ont été ajoutées.
var métadonnéesXmp = image.getXmpData();
assertIsNotNull(métadonnéesXmp);
// Maintenant, nous pouvons accéder aux paquets Xmp des fichiers AI.
var packageBasique = (XmpBasicPackage) métadonnéesXmp.getPackage(Namespaces.XmpBasic);
XmpPackage paquet_ = métadonnéesXmp.getPackages()[4];
// Et nous avons accès au contenu de ces paquets.
var outilCréateur = packageBasique.get_Item(cléOutilCréateur).toString();
var nPages = paquet_.get_Item(cléNPages);
var unité = paquet_.get_Item(cléUnité);
var hauteur = Double.parseDouble(paquet_.get_Item(cléHauteur).toString());
var largeur = Double.parseDouble(paquet_.get_Item(cléLargeur).toString());
assertAreEqual(outilCréateur, outilCréateurAttendu);
assertAreEqual(nPages, nPagesAttendu);
assertAreEqual(unité, unitéAttendue);
assertAreEqual(hauteur, hauteurAttendue);
assertAreEqual(largeur, largeurAttendue);
}
}
static void assertAreEqual(Object attendu, Object réel) {
assertAreEqual(attendu, réel, "Les objets ne sont pas égaux.");
}
static void assertAreEqual(Object attendu, Object réel, String message) {
if (!attendu.equals(réel)) {
throw new IllegalArgumentException(message);
}
}
static void assertIsNotNull(Object objetTest) {
if (objetTest == null) {
throw new RuntimeException("L'objet de test est nul.");
}
}
PSDJAVA-630. Implémenter les types de déformation Inflate, Squeeze et Twist
String[] fichiers = {"Twist", "Squeeze", "Squeeze_vert", "Inflate"};
for (String préfixe : fichiers) {
String fichierSource = "src/main/resources/" + préfixe + ".psd";
String fichierSortie = "src/main/resources/" + préfixe + "_export.png";
PsdLoadOptions optionsChargementPsd = new PsdLoadOptions();
optionsChargementPsd.setAllowWarpRepaint(true);
optionsChargementPsd.setLoadEffectsResource(true);
try (PsdImage imagePsd = (PsdImage) Image.load(fichierSource, optionsChargementPsd)) {
PngOptions optionsPng = new PngOptions();
optionsPng.setColorType(PngColorType.TruecolorWithAlpha);
imagePsd.save(fichierSortie, optionsPng);
}
}
PSDJAVA-631. Les modes Rgb et Lab ne peuvent pas contenir moins de 3 canaux ni plus de 4 canaux dans le fichier avec des calques ArtBoard
String fichierSource = "src/main/resources/Rgb5Channels.psb";
String fichierSortie = "src/main/resources/Rgb5Channels_output.psd";
try (PsdImage image = (PsdImage) Image.load(fichierSource)) {
// Il ne devrait y avoir aucune exception ici
image.save(fichierSortie);
}
PSDJAVA-632. La zone de traitement supérieure doit être positive. (Paramètre ‘areaToProcess’) lors du traitement d’un fichier spécifique
String fichierSource = "src/main/resources/BANNERS_2_Intel-Gamer_psak.psd";
String fichierSortie = "src/main/resources/BANNERS_2_Intel-Gamer_psak_out.psd";
PsdLoadOptions optionsChargementPsd = new PsdLoadOptions();
optionsChargementPsd.setLoadEffectsResource(true);
optionsChargementPsd.setAllowWarpRepaint(true);
try (PsdImage image = (PsdImage) PsdImage.load(fichierSource, optionsChargementPsd)) {
image.save(fichierSortie);
// Ne devrait pas y avoir d'exception
}
PSDJAVA-633. L’image étendue sur le canevas est rognée après l’enregistrement. Les données sont perdues mais l’aperçu est correct
String fichierSource = "src/main/resources/bigfile.psd";
String fichierSortie = "src/main/resources/bigfile_output.psd";
String imageSortie = "src/main/resources/bigfile.png";
PsdLoadOptions optionsChargement = new PsdLoadOptions();
optionsChargement.setLoadEffectsResource(true);
optionsChargement.setUseDiskForLoadEffectsResource(true);
try (var imagePsd = (PsdImage) Image.load(fichierSource, optionsChargement)) {
PsdOptions optionsPsd = new PsdOptions();
optionsPsd.setCompressionMethod(CompressionMethod.RLE);
// Il ne devrait y avoir aucune erreur ici
imagePsd.save(fichierSortie, optionsPsd);
}
try (var imagePsd = (PsdImage) Image.load(fichierSortie, optionsChargement)) {
imagePsd.resize(imagePsd.getWidth() / 10, imagePsd.getHeight() / 10);
PngOptions optionsPng = new PngOptions();
optionsPng.setColorType(PngColorType.TruecolorWithAlpha);
// Il ne devrait y avoir aucune erreur ici
imagePsd.save(imageSortie, optionsPng);
}