Aspose.PSD pour .NET 20.2 - Notes de version

Clé Résumé Catégorie
PSDNET-206 Amélioration de la capacité à rendre du texte de différentes couleurs dans la couche de texte Fonctionnalité
PSDNET-369 Prise en charge de la ressource clbl (La ressource de couche contient des informations sur les éléments de découpe de fusion) Fonctionnalité
PSDNET-274 Prise en charge de la ressource blwh (La ressource contient les données de la couche d’ajustement noir et blanc) Fonctionnalité
PSDNET-230 Capacité à exporter un groupe de calques en Jpeg/Png/Tiff/Gif/Bmp/Jpeg2000/Psd/Psb/Pdf Fonctionnalité
PSDNET-372 Prise en charge de la ressource lspf (Contient des paramètres sur le réglage de la protection des calques) Fonctionnalité
PSDNET-370 Prise en charge de la ressource infx (Contient des données sur le mélange des éléments intérieurs) Fonctionnalité
PSDNET-251 Refonte de PsdImage et Layer pour changer le comportement de transformation (Redimensionnement/création corrects pour les masques de calque si nous transformons un calque séparément) Amélioration
PSDNET-276 Dans certains paramètres de globalisation, l’image raster AI ne peut pas être ouverte Bogue
PSDNET-194 Après avoir effectué l’opération FlipRotate sur un calque, l’image PSD devient illisible Bogue
PSDNET-177. System.ArgumentException lors du chargement du fichier PSD Bogue
PSDNET-249 Après avoir utilisé une méthode de transformation pour un calque uniquement, le calque enregistré a des limites incorrectes ou un masque Bogue

Changements de l’API publique

APIs ajoutées :

  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskDataFull.UserMaskRectangle
  • M:Aspose.PSD.FileFormats.Ai.AiDataSection.ReleaseManagedResources
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerGroup.Width
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerGroup.Height
  • T:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Reds
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Yellows
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Greens
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Cyans
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Blues
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.Magentas
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.UseTint
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.BwPresetKind
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.BlackAndWhitePresetFileName
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.TintColor
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.TintColorRed
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.TintColorGreen
  • P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.BlackWhiteAdjustmentLayer.TintColorBlue
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.#ctor
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Save(Aspose.PSD.StreamContainer,System.Int32)
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.TypeToolKey
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Key
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Length
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.PsdVersion
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Reds
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Yellows
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Greens
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Cyans
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Blues
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.Magentas
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.UseTint
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.BwPresetKind
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.BlackAndWhitePresetFileName
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlwhResource.TintColor
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.#ctor
  • P:Aspose.PSD.Xmp.Types.Derived.RenditionClass.DefinedValues
  • T:Aspose.PSD.AggregateException
  • M:Aspose.PSD.CmykColor.Equals(System.Object)
  • T:Aspose.PSD.CompositeException
  • T:Aspose.PSD.CoreExceptions.IndexOutOFRangeException
  • M:Aspose.PSD.CoreExceptions.IndexOutOFRangeException.#ctor(System.String)
  • M:Aspose.PSD.CoreExceptions.IndexOutOFRangeException.#ctor(System.String,System.Exception)
  • F:Aspose.PSD.FileFormat.Otg
  • T:Aspose.PSD.FileFormats.Jpeg2000.Jpeg2000CustomException
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.#ctor(System.Int32)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.#ctor(System.Byte[])
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.Key
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.Length
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.PsdVersion
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.IsDataStoredDiscretely
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.GetChannelData(System.Int32)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.GetActiveManager
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.Save(Aspose.PSD.StreamContainer,System.Int32)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.GetCurveManager
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.CurvResource.TypeToolKey
  • T:Aspose.PSD.ImageOptions.TiffOptionsUtils
  • M:Aspose.PSD.ImageOptions.TiffOptionsUtils.#ctor
  • M:Aspose.PSD.ImageOptions.TiffOptionsUtils.GetValidTagsCount(Aspose.PSD.FileFormats.Tiff.TiffDataType[])
  • P:Aspose.PSD.ImageOptionsBase.ProgressEventHandler
  • P:Aspose.PSD.LoadOptions.ProgressEventHandler
  • M:Aspose.PSD.Matrix.#ctor(Aspose.PSD.Matrix)
  • M:Aspose.PSD.Metered.Equals(System.Object)
  • T:Aspose.PSD.ProgressEventHandler
  • T:Aspose.PSD.ProgressManagement.EventType
  • F:Aspose.PSD.ProgressManagement.EventType.RelativeProgress
  • F:Aspose.PSD.ProgressManagement.EventType.StageChange
  • F:Aspose.PSD.ProgressManagement.EventType.Initialization
  • F:Aspose.PSD.ProgressManagement.EventType.PreProcessing
  • F:Aspose.PSD.ProgressManagement.EventType.Processing
  • F:Aspose.PSD.ProgressManagement.EventType.Finalization
  • T:Aspose.PSD.ProgressManagement.ProgressEventHandlerInfo
  • P:Aspose.PSD.ProgressManagement.ProgressEventHandlerInfo.Description
  • P:Aspose.PSD.ProgressManagement.ProgressEventHandlerInfo.EventType
  • P:Aspose.PSD.ProgressManagement.ProgressEventHandlerInfo.MaxValue
  • P:Aspose.PSD.ProgressManagement.ProgressEventHandlerInfo.Value
  • M:Aspose.PSD.RasterImage.GetSkewAngle
  • M:Aspose.PSD.RasterImage.NormalizeAngle
  • M:Aspose.PSD.RasterImage.NormalizeAngle(System.Boolean,Aspose.PSD.Color)

APIs supprimées :

  • M:Aspose.PSD.FileFormats.Ai.AiDataSection.Dispose
  • P:Aspose.PSD.FileFormats.Ai.AiRasterImageSection.ImageRectangle
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lr16Resource.#ctor(System.Int32)
  • F:Aspose.PSD.Xmp.Types.Derived.RenditionClass.DefinedValues

Exemples d’utilisation :

PSDNET-206. Amélioration de la capacité à rendre du texte de différentes couleurs dans la couche de texte

  using (var psdImage = (PsdImage)Image.Load("text_ethalon_different_colors.psd"))

{

    var txtLayer = (TextLayer)psdImage.Layers[1];

    txtLayer.TextData.UpdateLayerData();

    psdImage.Save("output.png", new PngOptions());

}

PSDNET-369. Prise en charge de la ressource clbl (La ressource de couche contient des informations sur les éléments de découpe de fusion)

        void AssertIsTrue(bool condition, string message)

        {

            if (!condition)

            {

                throw new FormatException(message);

            }

        }

        string sourceFileName = "SampleForResource.psd";

        string destinationFileName = "Output" + sourceFileName;

        ClblResource GetClblResource(PsdImage im)

        {

            foreach (var layer in im.Layers)

            {

                foreach (var layerResource in layer.Resources)

                {

                    if (layerResource is ClblResource)

                    {

                        return (ClblResource)layerResource;

                    }

                }

            }

            throw new Exception("ClblResource spécifié non trouvé");

        }

        using (PsdImage im = (PsdImage)Image.Load(sourceFileName))

        {

            var resource = GetClblResource(im);

            AssertIsTrue(resource.BlendClippedElements, "ClblResource.BlendClippedElements devrait être true");

            // Test d'édition et d'enregistrement

            resource.BlendClippedElements = false;

            im.Save(destinationFileName);

        }

        using (PsdImage im = (PsdImage)Image.Load(destinationFileName))

        {

            var resource = GetClblResource(im);

            AssertIsTrue(!resource.BlendClippedElements, "ClblResource.BlendClippedElements devrait être changé en false");

        }

PSDNET-274. Prise en charge de la ressource blwh (La ressource contient les données de la couche d’ajustement noir et blanc)

         const string ActualPropertyValueIsWrongMessage = "La valeur de propriété attendue n'est pas égale à la valeur réelle";

        void AssertIsTrue(bool condition, string message)

        {

            if (!condition)

            {

                throw new FormatException(message);

            }

        }

        void ExampleSupportOfBlwhResource(

            string sourceFileName,

            int reds,

            int yellows,

            int greens,

            int cyans,

            int blues,

            int magentas,

            bool useTint,

            int bwPresetKind,

            string bwPresetFileName,

            double tintColorRed,

            double tintColorGreen,

            double tintColorBlue,

            int tintColor,

            int newTintColor)

        {

            string destinationFileName = "Output" + sourceFileName;

            bool isRequiredResourceFound = false;

            using (PsdImage im = (PsdImage)Image.Load(sourceFileName))

            {

                foreach (var layer in im.Layers)

                {

                    foreach (var layerResource in layer.Resources)

                    {

                        if (layerResource is BlwhResource)

                        {

                            var blwhResource = (BlwhResource)layerResource;

                            var blwhLayer = (BlackWhiteAdjustmentLayer)layer;

                            isRequiredResourceFound = true;

                            AssertIsTrue(blwhResource.Reds == reds, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Yellows == yellows, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Greens == greens, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Cyans == cyans, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Blues == blues, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Magentas == magentas, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.UseTint == useTint, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.TintColor == tintColor, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.BwPresetKind == bwPresetKind, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.BlackAndWhitePresetFileName == bwPresetFileName, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorRed - tintColorRed) < 1e-6, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorGreen - tintColorGreen) < 1e-6, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorBlue - tintColorBlue) < 1e-6, ActualPropertyValueIsWrongMessage);

                            // Test d'édition et d'enregistrement

                            blwhResource.Reds = reds - 15;

                            blwhResource.Yellows = yellows - 15;

                            blwhResource.Greens = greens + 15;

                            blwhResource.Cyans = cyans + 15;

                            blwhResource.Blues = blues - 15;

                            blwhResource.Magentas = magentas - 15;

                            blwhResource.UseTint = !useTint;

                            blwhResource.BwPresetKind = 4;

                            blwhResource.BlackAndWhitePresetFileName = "bwPresetFileName";

                            blwhLayer.TintColorRed = tintColorRed - 60;

                            blwhLayer.TintColorGreen = tintColorGreen - 60;

                            blwhLayer.TintColorBlue = tintColorBlue - 60;

                            im.Save(destinationFileName);

                            break;

                        }

                    }

                }

            }

            AssertIsTrue(isRequiredResourceFound, "BlwhResource spécifié non trouvé");

            isRequiredResourceFound = false;

            using (PsdImage im = (PsdImage)Image.Load(destinationFileName))

            {

                foreach (var layer in im.Layers)

                {

                    foreach (var layerResource in layer.Resources)

                    {

                        if (layerResource is BlwhResource)

                        {

                            var blwhResource = (BlwhResource)layerResource;

                            var blwhLayer = (BlackWhiteAdjustmentLayer)layer;

                            isRequiredResourceFound = true;

                            AssertIsTrue(blwhResource.Reds == reds - 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Yellows == yellows - 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Greens == greens + 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Cyans == cyans + 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Blues == blues - 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.Magentas == magentas - 15, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.UseTint == !useTint, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.TintColor == newTintColor, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.BwPresetKind == 4, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(blwhResource.BlackAndWhitePresetFileName == "bwPresetFileName", ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorRed - tintColorRed + 60) < 1e-6, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorGreen - tintColorGreen + 60) < 1e-6, ActualPropertyValueIsWrongMessage);

                            AssertIsTrue(Math.Abs(blwhLayer.TintColorBlue - tintColorBlue + 60) < 1e-6, ActualPropertyValueIsWrongMessage);

                            break;

                        }

                    }

                }

            }

            AssertIsTrue(isRequiredResourceFound, "BlwhResource spécifié non trouvé");

        }

        ExampleSupportOfBlwhResource(

            "BlackWhiteAdjustmentLayerStripesMask.psd",

            0x28,

            0x3c,

            0x28,

            0x3c,

            0x14,

            0x50,

            false,

            1,

            "\0",

            225.00045776367188,

            211.00067138671875,

            179.00115966796875,

            -1977421,

            -5925001);

        ExampleSupportOfBlwhResource(

            "BlackWhiteAdjustmentLayerStripesMask2.psd",

            0x80,

            0x40,

            0x20,

            0x10,

            0x08,

            0x04,

            true,

            4,

            "\0",

            239.996337890625,

            127.998046875,

            63.9990234375,

            -1015744,

            -4963324);

        Console.WriteLine("La mise à jour de BlwhResource fonctionne comme prévu. Appuyez sur une touche.");

PSDNET-230. Capacité à exporter un groupe de calques en Jpeg/Png/Tiff/Gif/Bmp/Jpeg2000/Psd/Psb/Pdf

  using (var psdImage = (PsdImage)Image.Load("1.psd"))

            {

                // dossier avec arrière-plan

                LayerGroup bg_folder = (LayerGroup)psdImage.Layers[0];

                // dossier avec contenu

                LayerGroup content_folder = (LayerGroup)psdImage.Layers[4];

                bg_folder.Save("background.png", new PngOptions());

                content_folder.Save("content.png", new PngOptions());

            }

 PSDNET-372. Prise en charge de la ressource lspf (Contient des paramètres sur le réglage de la protection des calques)

         const string ActualPropertyValueIsWrongMessage = "La valeur de propriété attendue n'est pas égale à la valeur réelle";

        void AssertIsTrue(bool condition, string message)

        {

            if (!condition)

            {

                throw new FormatException(message);

            }

        }

        string sourceFileName = "SampleForResource.psd";

        string destinationFileName = "Output" + sourceFileName;

        bool isRequiredResourceFound = false;

        using (PsdImage im = (PsdImage)Image.Load(sourceFileName))

        {

            foreach (var layer in im.Layers)

            {

                foreach (var layerResource in layer.Resources)

                {

                    if (layerResource is LspfResource)

                    {

                        var resource = (LspfResource)layerResource;

                        isRequiredResourceFound = true;

                        AssertIsTrue(false == resource.IsCompositeProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsPositionProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsTransparencyProtected, ActualPropertyValueIsWrongMessage);

                        // Test d'édition et d'enregistrement

                        resource.IsCompositeProtected = true;

                        AssertIsTrue(true == resource.IsCompositeProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsPositionProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsTransparencyProtected, ActualPropertyValueIsWrongMessage);

                        resource.IsCompositeProtected = false;

                        resource.IsPositionProtected = true;

                        AssertIsTrue(false == resource.IsCompositeProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(true == resource.IsPositionProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsTransparencyProtected, ActualPropertyValueIsWrongMessage);

                        resource.IsPositionProtected = false;

                        resource.IsTransparencyProtected = true;

                        AssertIsTrue(false == resource.IsCompositeProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(false == resource.IsPositionProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(true == resource.IsTransparencyProtected, ActualPropertyValueIsWrongMessage);

                        resource.IsCompositeProtected = true;

                        resource.IsPositionProtected = true;

                        resource.IsTransparencyProtected = true;

                        im.Save(destinationFileName);

                        break;

                    }

                }

            }

        }

        AssertIsTrue(isRequiredResourceFound, "La ressource Lspf spécifiée non trouvée");

        isRequiredResourceFound = false;

        using (PsdImage im = (PsdImage)Image.Load(destinationFileName))

        {

            foreach (var layer in im.Layers)

            {

                foreach (var layerResource in layer.Resources)

                {

                    if (layerResource is LspfResource)

                    {

                        var resource = (LspfResource)layerResource;

                        isRequiredResourceFound = true;

                        AssertIsTrue(resource.IsCompositeProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(resource.IsPositionProtected, ActualPropertyValueIsWrongMessage);

                        AssertIsTrue(resource.IsTransparencyProtected, ActualPropertyValueIsWrongMessage);

                        break;

                    }

                }

            }

        }

        AssertIsTrue(isRequiredResourceFound, "La ressource Lspf spécifiée non trouvée");

        Console.WriteLine("La mise à jour de la ressource Lspf fonctionne comme prévu. Appuyez sur une touche.");

 PSDNET-370. Prise en charge de la ressource infx (Contient des données sur le mélange des éléments intérieurs)

         void AssertIsTrue(bool condition, string message)

        {

            if (!condition)

            {

                throw new FormatException(message);

            }

        }

        string sourceFileName = "SampleForResource.psd";

        string destinationFileName = "Output" + sourceFileName;

        bool isRequiredResourceFound = false;

        using (PsdImage im = (PsdImage)Image.Load(sourceFileName))

        {

            foreach (var layer in im.Layers)

            {

                foreach (var layerResource in layer.Resources)

                {

                    if (layerResource is InfxResource)

                    {

                        var resource = (InfxResource)layerResource;

                        isRequiredResourceFound = true;

                        AssertIsTrue(!resource.BlendInteriorElements, "InfxResource.BlendInteriorElements devrait être false");

                        // Test d'édition et d'enregistrement

                        resource.BlendInteriorElements = true;

                        im.Save(destinationFileName);

                        break;

                    }

                }

            }

        }

        AssertIsTrue(isRequiredResourceFound, "La ressource Infx spécifiée non trouvée");

        isRequiredResourceFound = false;

        using (PsdImage im = (PsdImage)Image.Load(destinationFileName))

        {

            foreach (var layer in im.Layers)

            {

                foreach (var layerResource in layer.Resources)

                {

                    if (layerResource is InfxResource)

                    {

                        var resource = (InfxResource)layerResource;

                        isRequiredResourceFound = true;

                        AssertIsTrue(resource.BlendInteriorElements, "La ressource InfxResource devrait être changée en true");

                        break;

                    }

                }

            }

        }

        AssertIsTrue(isRequiredResourceFound, "La ressource Infx spécifiée non trouvée");

PSDNET-251. Refonte de PsdImage et Layer pour changer le comportement de transformation (Redimensionnement/création corrects pour les masques de calque si nous transformons un calque séparément)

             var enums = (RotateFlipType[])Enum.GetValues(typeof(RotateFlipType));

            var fileNames = new string[]

            {

                "OneRegularAndOneAdjustmentWithVectorAndLayerMask",

                "OneRegularAndOneAdjustmentWithLayerMask", 

                "TextLayer",

                "LinkedShapesWithText"

            };

            foreach (string fileName in fileNames)

            {

                foreach (RotateFlipType rotateFlipType in enums)

                {

                    string sourceFileName = fileName + ".psd";

                    string destinationFileName = fileName + "_" + rotateFlipType;

                    var psdLoadOptions = new PsdLoadOptions() { LoadEffectsResource = true };

                    using (PsdImage image = (PsdImage)Image.Load(sourceFileName, psdLoadOptions))

                    {

                        image.RotateFlip(rotateFlipType);

                        image.Save(destinationFileName);

                    }

                }

            }

PSDNET-276. Dans certains paramètres de globalisation, l’image raster AI ne peut pas être ouverte

        string sourceFileName = "form_raster_8.ai";

        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ru_RU");

        System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;

        using (AiImage image = (AiImage)Image.Load(sourceFileName))

        {

            // aucune exception ne devrait être déclenchée

        }

PSDNET-194. Après avoir effectué l’opération FlipRotate sur un calque, l’image PSD devient illisible