Aspose.PSD pour Java 24.1 - Notes de version

Clé Résumé Catégorie
PSDJAVA-576 [Format AI] Ajouter une gestion basique des images AI multipages. Fonction
PSDJAVA-579 L’effet de déformation du texte n’est pas appliqué au texte. Bug
PSDJAVA-580 Rendu incorrect du masque dans un fichier spécifique. Bug
PSDJAVA-581 NullReferenceException à Aspose.PSD.FontParsing.OpenType.Serialization.OpenTypeFontInfo.ctor. Bug
PSDJAVA-582 [Format AI] Correction de l’utilisation de mémoire dans AiExporterUtils. Bug

Changements de l’API publique

APIs ajoutées :

  • M:com.aspose.psd.fileformats.ai.AiImage.getActivePageIndex
  • M:com.aspose.psd.fileformats.ai.AiImage.setActivePageIndex(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getInterpolation
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setInterpolation(short)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getGradientMode
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setGradientMode(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getColorModel
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getGradientMode
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getMaximumColor
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getMinimumColor
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getRndNumberSeed
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getRoughness
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getShowTransparency
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.getUseVectorColor
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setColorModel(java.lang.String)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setGradientMode(java.lang.String)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setMaximumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setMinimumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setRndNumberSeed(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setRoughness(int)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setShowTransparency(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource.setUseVectorColor(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.smartobjects.SmartObjectLayer.#ctor(com.aspose.psd.system.io.Stream)
  • F:com.aspose.psd.fileformats.psd.resources.enums_.ColorSpace.RGB
  • T:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.#ctor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getColorModel
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getMaximumColor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getMinimumColor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getRndNumberSeed
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getRoughness
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getShowTransparency
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.getUseVectorColor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setColorModel(short)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setMaximumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setMinimumColor(com.aspose.psd.fileformats.psd.rawcolor.RawColor)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setRndNumberSeed(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setRoughness(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setShowTransparency(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.NoiseGradientFillSettings.setUseVectorColor(boolean)
  • 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
  • T:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.#ctor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.#ctor(com.aspose.psd.fileformats.psd.layers.layerresources.GdFlResource)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getAlignWithLayer
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getAngle
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getDither
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getFillType
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getGradientMode
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getGradientType
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getHorizontalOffset
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getReverse
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getScale
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.getVerticalOffset
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setAlignWithLayer(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setAngle(double)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setDither(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setGradientMode(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setGradientType(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setHorizontalOffset(double)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setReverse(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setScale(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.BaseGradientFillSettings.setVerticalOffset(double)

APIs supprimées :

  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getAlignWithLayer
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getAngle
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getDither
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getFillType
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getGradientType
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getHorizontalOffset
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getReverse
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getScale
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.getVerticalOffset
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setAlignWithLayer(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setAngle(double)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setDither(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setGradientType(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setHorizontalOffset(double)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setReverse(boolean)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setScale(int)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.GradientFillSettings.setVerticalOffset(double)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IFillSettings.setColor(com.aspose.psd.Color)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getColor
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getColorPoints
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getGradientName
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.getTransparencyPoints
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setColor(com.aspose.psd.Color)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setColorPoints(com.aspose.psd.fileformats.psd.layers.IGradientColorPoint[])
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setGradientName(java.lang.String)
  • M:com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientFillSettings.setTransparencyPoints(com.aspose.psd.fileformats.psd.layers.fillsettings.IGradientTransparencyPoint[])
  • F:com.aspose.psd.fileformats.psd.resources.enums_.ColorSpace.RGB

Exemples d’utilisation :

PSDJAVA-576. [Format AI] Ajouter une gestion basique des images AI multipages

        String fichierSource = "src/main/resources/threePages.ai";
        String premierPageSortiePng = "src/main/resources/firstPageOutput.png";
        String deuxièmePageSortiePng = "src/main/resources/secondPageOutput.png";
        String troisièmePageSortiePng = "src/main/resources/thirdPageOutput.png";

        // Charger l'image AI.
        try (AiImage image = (AiImage) Image.load(fichierSource)) {
            // Par défaut, l'ActivePageIndex est 0.
            // Donc si vous enregistrez l'image AI sans changer cette propriété, la première page sera rendue et enregistrée.
            image.save(premierPageSortiePng, new PngOptions());

            // Changer l'index de la page active pour la deuxième page.
            image.setActivePageIndex(1);

            // Enregistrer la deuxième page de l'image AI en tant qu'image PNG.
            image.save(deuxièmePageSortiePng, new PngOptions());

            // Changer l'index de la page active pour la troisième page.
            image.setActivePageIndex(2);

            // Enregistrer la troisième page de l'image AI en tant qu'image PNG.
            image.save(troisièmePageSortiePng, new PngOptions());
        }

PSDJAVA-579. L’effet de déformation du texte n’est pas appliqué au texte

        String fichierSource = "src/main/resources/text_warp.psd";
        String fichierSortie = "src/main/resources/export.png";

        PsdLoadOptions opt = new PsdLoadOptions();
        opt.setLoadEffectsResource(true);
        opt.setAllowWarpRepaint(true);

        try (PsdImage img = (PsdImage) Image.load(fichierSource, opt)) {
            PngOptions pngOptions = new PngOptions();
            pngOptions.setCompressionLevel(9);
            pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

            img.save(fichierSortie, pngOptions);
        }

PSDJAVA-580. Rendu incorrect du masque dans un fichier spécifique

        String fichierSource1 = "src/main/resources/mask_problem.psd";
        String fichierSource2 = "src/main/resources/puh_softLight3_1.psd";
        String fichierSortie1 = "src/main/resources/mask_export.png";
        String fichierSortie2 = "src/main/resources/puh_export.png";

        PsdLoadOptions opt = new PsdLoadOptions();
        opt.setLoadEffectsResource(true);

        try (PsdImage img = (PsdImage) Image.load(fichierSource1, opt)) {
            PngOptions pngOptions = new PngOptions();
            pngOptions.setCompressionLevel(9);
            pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

            img.save(fichierSortie1, pngOptions);
        }

        try (PsdImage img = (PsdImage) Image.load(fichierSource2, opt)) {
            PngOptions pngOptions = new PngOptions();
            pngOptions.setCompressionLevel(9);
            pngOptions.setColorType(PngColorType.TruecolorWithAlpha);

            img.save(fichierSortie2, pngOptions);
        }

PSDJAVA-581. NullReferenceException à Aspose.PSD.FontParsing.OpenType.Serialization.OpenTypeFontInfo.ctor

        String dossierPolices = "src/main/resources/Fonts";
        FontSettings.setFontsFolders(new String[]{dossierPolices}, true);

        String fichierEntrée = "src/main/resources/1.psd";
        String fichierSortie = "src/main/resources/out_1855.png";
        try (PsdImage psdImage = (PsdImage) Image.load(fichierEntrée)) {
            psdImage.save(fichierSortie, new PngOptions());
        }

PSDJAVA-582. [Format AI] Correction de l’utilisation de mémoire dans AiExporterUtils

        String fichierSource = "src/main/resources/threePages.ai";
        String premierPageSortiePng = "src/main/resources/firstPageOutput.png";
        String deuxièmePageSortiePng = "src/main/resources/secondPageOutput.png";
        String troisièmePageSortiePng = "src/main/resources/thirdPageOutput.png";

        final double LimiteMémoire = 700;
        double mémoireUtilisée = Double.MAX_VALUE;

        // Charger l'image AI.
        try (AiImage image = (AiImage) Image.load(fichierSource)) {
            // Enregistrer la première page de l'image AI en tant qu'image PNG.
            image.save(premierPageSortiePng, new PngOptions());

            // Changer l'index de la page active pour la deuxième page.
            image.setActivePageIndex(1);

            // Enregistrer la deuxième page de l'image AI en tant qu'image PNG.
            image.save(deuxièmePageSortiePng, new PngOptions());

            // Changer l'index de la page active pour la troisième page.
            image.setActivePageIndex(2);

            // Enregistrer la troisième page de l'image AI en tant qu'image PNG.
            image.save(troisièmePageSortiePng, new PngOptions());
        }

        System.gc();

        mémoireUtilisée = (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024.0 * 1024.0);

        if (mémoireUtilisée > LimiteMémoire) {
            throw new RuntimeException("L'utilisation de mémoire est trop importante. " + mémoireUtilisée + " au lieu de " + String.format("%.1f", LimiteMémoire));
        }