Aspose.PSD pour Java 20.4 - Notes de version

Clé Résumé Catégorie
PSDJAVA-156 Prise en charge de la ressource ‘Données d’origine vectorielle’ Fonctionnalité
PSDJAVA-171 Prise en charge de lclrResource (Paramètres de couleur de la feuille) Fonctionnalité
PSDJAVA-157 Prise en charge des propriétés des données LengthRecord. (Opérations de chemin (opérations booléennes), index de la forme dans la couche, nombre d’enregistrements de nœuds de bézier) Fonctionnalité
PSDJAVA-158 Support de la ressource ‘Couleur de fond’ de la section d’image n°1010 Fonctionnalité
PSDJAVA-161 Ajout de couches de remplissage à l’exécution Fonctionnalité
PSDJAVA-168 Prise en charge de la ressource ‘Information de bordure’ de la section d’image n°1009 Fonctionnalité
PSDJAVA-169 Prise en charge des couches dans les fichiers au format AI Fonctionnalité
PSDJAVA-163 Prise en charge de la lecture et de la modification de l’effet de calque de superposition de dégradé Fonctionnalité
PSDJAVA-164 Rendu de l’effet de calque de superposition de dégradé Fonctionnalité
PSDJAVA-149 Erreur Aspose.PSD pour Java lors de l’obtention de la propriété textData.items de la couche de texte Erreur
PSDJAVA-166 Correction de l’enregistrement de l’image PSD avec le mode de couleur en niveaux de gris et 16 bits par canal vers le format PSD en niveaux de gris Erreur
PSDJAVA-167 Correction de l’enregistrement de l’image PSD avec le mode de couleur en niveaux de gris et 16 bits par canal vers le format PNG Erreur
PSDJAVA-159 Les modifications de la propriété GradientOverlayEffect.BlendMode ne sont pas affichées dans Photoshop Erreur

Modifications de l’API Publique

APIs ajoutées:

  • M:com.aspose.psd.fileformats.psd.PsdImage.addBlackWhiteAdjustmentLayer
  • M:com.aspose.psd.fileformats.psd.PsdImage.addExposureAdjustmentLayer(flottant)
  • M:com.aspose.psd.fileformats.psd.PsdImage.addExposureAdjustmentLayer(flottant,flottant)
  • T:com.aspose.psd.fileformats.psd.PsdVersion
  • F:com.aspose.psd.fileformats.psd.PsdVersion.Psb
  • F:com.aspose.psd.fileformats.psd.PsdVersion.Psd
  • F:com.aspose.psd.fileformats.psd.layers.BlendMode.Absent
  • M:com.aspose.psd.fileformats.psd.layers.ChannelInformation.#ctor(short,byte[],byte[])
  • M:com.aspose.psd.fileformats.psd.layers.Layer.#ctor(com.aspose.psd.RasterImage)
  • M:com.aspose.psd.fileformats.psd.layers.Layer.#ctor(com.aspose.psd.internal.ij.k,com.aspose.psd.IColorPalette)
  • M:com.aspose.psd.fileformats.psd.layers.LayerGroup.getBlendModeKey
  • M:com.aspose.psd.fileformats.psd.layers.LayerGroup.setBlendModeKey(long)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesContinuousManager.getChannelsCount
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesContinuousManager.isChannelUsed(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.#ctor(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.getChannelsCount
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesDiscreteManager.isChannelUsed(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesManager.getChannelsCount
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.CurvesManager.isChannelUsed(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.LayerSectionResource.setBlendModeKey(long)
  • M:com.aspose.psd.fileformats.psd.layers.text.IText.producePortions(java.lang.String[],com.aspose.psd.fileformats.psd.layers.text.ITextStyle,com.aspose.psd.fileformats.psd.layers.text.ITextParagraph)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getBaselineShift
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFauxBold
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFauxItalic
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFontBaseline
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getFontCaps
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getStrikethrough
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.getUnderline
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setBaselineShift(double)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFauxBold(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFauxItalic(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFontBaseline(int)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setFontCaps(int)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setLeading(double)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setStrikethrough(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.text.ITextStyle.setUnderline(boolean)
  • T:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.None
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.Subscript
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline.Superscript
  • T:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.AllCaps
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.None
  • F:com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps.SmallCaps
  • M:com.aspose.psd.sources.StreamSource.#ctor(java.io.OutputStream)
  • M:com.aspose.psd.sources.StreamSource.#ctor(java.io.OutputStream,boolean)

APIs Supprimées:

  • M:com.aspose.psd.fileformats.psd.layers.Layer.#ctor(com.aspose.psd.internal.ij.k,com.aspose.psd.IColorPalette)
  • M:com.aspose.psd.xmp.schemas.xmpdm.XmpDynamicMediaPackage.setAudioSampleType(com.aspose.psd.xmp.schemas.xmpdm.AudioSampleType)

Exemples d’utilisation:

PSDJAVA-156. Prise en charge de la ressource “Données d’origine vectorielle”

 /*

Un exemple de lecture et de modification d'une ressource de données d'origine vectorielle.

*/

// Conservez les méthodes dans la portée locale pour plus de simplicité

class LocalScopeExtension

{

    VogkResource findFirstVogkResource(LayerResource[] layerResources)

    {

        VogkResource vogkResource = null;

        for (LayerResource layerResource : layerResources)

        {

            if (layerResource instanceof VogkResource)

            {

                vogkResource = (VogkResource)layerResource;

                break;

            }

        }

        if (vogkResource == null)

        {

            throw new Exception("Ressource Vogk non trouvée.");

        }

        return vogkResource;

    }

}

LocalScopeExtension $ = new LocalScopeExtension();

String inPsdFilePath = "VectorOriginationDataResource.psd";

String outPsdFilePath = "out_VectorOriginationDataResource_.psd";

// Chargez un fichier PSD contenant une ressource VOGK prédéfinie

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

try

{

    // Trouvez d'abord VogkResource dans les ressources de la couche prédéfinie

    VogkResource vogkResource = $.findFirstVogkResource(

            psdImage.getLayers()[1].getResources());

    // Vérifiez les propriétés des ressources prédéfinies

    if (vogkResource.getShapeOriginSettings().length != 1 ||

            !vogkResource.getShapeOriginSettings()[0].isShapeInvalidated() ||

            vogkResource.getShapeOriginSettings()[0].getOriginIndex() != 0)

    {

        throw new Exception("Ressource Vogk mal lue.");

    }

    // Modifiez certaines propriétés de la ressource Vogk

    vogkResource.setShapeOriginSettings(new VectorShapeOriginSettings[]

            {

                    vogkResource.getShapeOriginSettings()[0],

                    new VectorShapeOriginSettings(true, 1)

            });

    // Enregistrez une copie modifiée du fichier PSD chargé sur le chemin

    psdImage.save(outPsdFilePath);

}

finally

{

    psdImage.dispose();

}

PSDJAVA-171. Prise en charge de lclrResource (Paramètres de couleur de la feuille)

 /*

Un exemple d'utilisation de la couleur de la feuille de calque pour mettre en évidence visuellement les calques. Par exemple, vous pouvez

mettre à jour certains calques dans PSD, puis mettre en surbrillance par couleur le calque que vous souhaitez attirer

attention.

*/

class LocalScopeExtension

{

    void checkSheetColorsAndRerverse(Short[] sheetColors, PsdImage psdImage)

    {

        int layersCount = psdImage.getLayers().length;

        for (int layerIndex = 0; layerIndex < layersCount; layerIndex++)

        {

            Layer layer = psdImage.getLayers()[layerIndex];

            for (LayerResource layerResource : layer.getResources())

            {

                if (!(layerResource instanceof LclrResource))

                {

                    continue;

                }

                // La ressource lcrl est toujours présente dans la liste des ressources du fichier psd.

                LclrResource resource = (LclrResource)layerResource;

                if (resource.getColor() != sheetColors[layerIndex])

                {

                    throw new Exception("La couleur de la feuille a été mal lue");

                }

                // Inversion des couleurs de la feuille de style. Configuration de la mise en surbrillance de la couleur de calque.

                resource.setColor(sheetColors[layersCount - layerIndex - 1]);

                break;

            }

        }

    }

}

LocalScopeExtension $ = new LocalScopeExtension();

String inPsdFilePath = "AllLclrResourceColors.psd";

String outPsdFilePath = "AllLclrResourceColorsReversed.psd";

// Dans le fichier, les couleurs de la mise en surbrillance des calques sont dans cet ordre

Short[] sheetColors = new Short[] {

        SheetColorHighlightEnum.Rouge,

        SheetColorHighlightEnum.Orange,

        SheetColorHighlightEnum.Jaune,

        SheetColorHighlightEnum.Vert,

        SheetColorHighlightEnum.Bleu,

        SheetColorHighlightEnum.Violet,

        SheetColorHighlightEnum.Gris,

        SheetColorHighlightEnum.SansCouleur

};

// Chargez un fichier PSD contenant une ressource LclrResource prédéfinie

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

try

{

    $.checkSheetColorsAndRerverse(sheetColors, psdImage);

    psdImage.save(outPsdFilePath, new PsdOptions());

}

finally

{

    psdImage.dispose();

}

// Chargez un fichier PSD nouvellement enregistré

PsdImage psdImage1 = (PsdImage)Image.load(outPsdFilePath);

try

{

    // Inversion des couleurs

    List<Short> sheetColorList = Arrays.asList(sheetColors);

    Collections.reverse(sheetColorList);

    $.checkSheetColorsAndRerverse(sheetColorList.toArray(new Short[0]), psdImage1);

}

finally

{

    psdImage1.dispose();

}

PSDJAVA-157. Prise en charge des propriétés des données LengthRecord. (Opérations de chemin (opérations booléennes), index de la forme dans la couche, nombre d’enregistrements de nœuds de bézier)

 /*

Un exemple de modification des opérations de chemin lors du travail avec des formes. Le programme lit

des enregistrements de tracé vectoriel prédéfinis (LengthRecord) et modifie leurs opérations de chemin, puis enregistre

une copie modifiée du document sous forme de nouveau fichier PSD.

*/

String inPsdFilePath = "PathOperationsShape.psd";

String outPsdFilePath = "out_" + inPsdFilePath;

// Chargez un fichier PSD contenant une ressource vsms prédéfinie

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

try

{

    // Trouvez d'abord VsmsResource dans les ressources de la couche prédéfinie

    VsmsResource resource = null;

    for (LayerResource layerResource : psdImage.getLayers()[1].getResources())

    {

        if (layerResource instanceof VsmsResource)

        {

            resource = (VsmsResource)layerResource;

            break;

        }

    }

    LengthRecord lengthRecord0 = (LengthRecord)resource.getPaths()[2];

    LengthRecord lengthRecord1 = (LengthRecord)resource.getPaths()[7];

    LengthRecord lengthRecord2 = (LengthRecord)resource.getPaths()[11];

    // Changez la manière dont les formes sont combinées

    lengthRecord0.setPathOperations(PathOperations.ExcludeOverlappingShapes);

    lengthRecord1.setPathOperations(PathOperations.IntersectShapeAreas);

    lengthRecord2.setPathOperations(PathOperations.SubtractFrontShape);

    // Enregistrez une copie modifiée du fichier PSD chargé sur le chemin

    psdImage.save(outPsdFilePath);

}

finally

{

    psdImage.dispose();
    
}

PSDJAVA-158. Support de la ressource ‘Couleur de fond’ de la section d’image n°1010

 /*

Un exemple de lecture et de modification d'une ressource de couleur de fond.

*/

String inPsdFilePath = "input.psd";

String outPsdFilePath = "output.psd";

// Chargez un fichier PSD contenant une ressource de couleur de fond prédéfinie

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

try

{

    BackgroundColorResource backgroundColorResource = null;

    for (ResourceBlock imageResource : psdImage.getImageResources())

    {

        if (imageResource instanceof BackgroundColorResource)

        {

            backgroundColorResource = (BackgroundColorResource)imageResource;

            break;

        }

    }

    if (backgroundColorResource == null)

    {

        throw new Exception("Ressource de couleur de fond non trouvée");

    }

    // Mettez à jour la couleur de la ressource de couleur de fond

    backgroundColorResource.setColor(Color.getDarkRed());

    // Enregistrez une copie modifiée du fichier PSD chargé sur le chemin

    psdImage.save(outPsdFilePath);

}

finally

{

    psdImage.dispose();

}

PSDJAVA-161. Ajout de couches de remplissage à l’exécution

 /*

Un exemple d'ajout de couches de remplissage de différents types à un document Photoshop.

*/

String outPsdFilePath = "output.psd";

// Créez un document Photoshop avec un canevas vide

PsdImage psdImage = new PsdImage(100, 100);

try

{

    // Ajoutez des couches de remplissage de différents types à PSD

    FillLayer colorFillLayer = FillLayer.createInstance(FillType.Color);

    colorFillLayer.setDisplayName("Couche de remplissage de couleur");

    psdImage.addLayer(colorFillLayer);

    FillLayer gradientFillLayer = FillLayer.createInstance(FillType.Gradient);

    gradientFillLayer.setDisplayName("Couche de remplissage de dégradé");

    psdImage.addLayer(gradientFillLayer);

    FillLayer patternFillLayer = FillLayer.createInstance(FillType.Pattern);

    patternFillLayer.setDisplayName("Couche de remplissage de motif");

    patternFillLayer.setOpacity((byte)50);

    psdImage.addLayer(patternFillLayer);

    // Enregistrez une copie modifiée du fichier PSD chargé sur le chemin

    psdImage.save(outPsdFilePath);

}

finally

{

    psdImage.dispose();

}

PSDJAVA-168. Support de la ressource ‘Information de bordure’ de la section d’image n°1009

 /*

Un exemple de lecture, de modification et d'enregistrement d'un fichier PSD contenant une information de bordure

ressource.

*/

String inPsdFilePath = "input.psd";

String outPsdFilePath = "output.psd";

// Chargez un