Aspose.PSD für .NET 20.8 - Versionshinweise

Schlüssel Zusammenfassung Kategorie
PSDNET-390 Unterstützung von PlLdResource (Platzierte Ressource für Smart Object Layer) Feature
PSDNET-400 Unterstützung von SoLdResource (Smart Object Layer Data-Ressource) Feature
PSDNET-693 Hinzufügen von Unterstützung für Objekt- und Einheits-Array-Strukturen: ObAr / UnFl-Signaturen Feature
PSDNET-600 Problembehebung beim Speichern von modifizierten PSD-Bildern mit CMYK-Farbraum 16 Bit pro Kanal Fehler
PSDNET-664 Unterstreichung und Durchstreichung gehen nach dem Fokussieren auf den Text in der Datei, die mit Aspose.PSD gespeichert wurde, verloren Fehler
PSDNET-710 Regression: Aspose.PSD 20.7.0 verändert Schriftgrößen für ältere Dateien Fehler

Änderungen an der öffentlichen API

Hinzugefügte APIs:

  • M:Aspose.PSD.FileFormats.Psd.Layers.FillLayers.FillLayer.ReplaceNonTransparentColors(System.Int32)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.ClassID.#ctor(System.Byte[],System.Boolean)
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.ObjectArrayStructure
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.ObjectArrayStructure.#ctor(System.String,System.String,Aspose.PSD.FileFormats.Psd.Layers.LayerResources.OSTypeStructure[])

Beispiele

PSDNET-693. Hinzufügen von Unterstützung für Objekt- und Einheits-Array-Strukturen: ObAr / UnFl-Signaturen

            void AssertAreEqual(object actual, object expected)
            {
                if (!object.Equals(actual, expected))
                {
                    throw new FormatException(string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
                }
            }

            string dataDir = "PSDNET693_1\\";
            var sourceFilePath = dataDir + "LayeredSmartObjects8bit2.psd";

PSDNET-600. Problembehebung beim Speichern von modifizierten PSD-Bildern mit CMYK-Farbraum 16 Bit pro Kanal

            using (PsdImage image = (PsdImage)Image.Load("cub16bit_cmyk.psd"))
            {
                RasterCachedImage raster = image.Layers[0];
                Aspose.PSD.Graphics graphics = new Graphics(raster);
                int width = raster.Width;
                int height = raster.Height;
                Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);
                graphics.DrawRectangle(new Aspose.PSD.Pen(Color.DarkGray, 1),  rect);
                image.Save("output.png", new PngOptions());
            }

PSDNET-664. Unterstreichung und Durchstreichung gehen nach dem Fokussieren auf den Text in der Datei, die mit Aspose.PSD gespeichert wurde, verloren

            string sourceFile = "source.psd";
            string outputFile = "output.psd";

            using (var image = (PsdImage)Image.Load(sourceFile))
            {
                var layers = image.Layers;
                var textLayer = (TextLayer)layers[1];

                textLayer.TextData.Items[0].Style.Underline = true;
                textLayer.TextData.Items[1].Style.Strikethrough = true;

                textLayer.TextData.UpdateLayerData();

                image.Save(outputFile, new PsdOptions(image));
            }

PSDNET-710. Regression: Aspose.PSD 20.7.0 verändert Schriftgrößen für ältere Dateien

            string srcFile = "font_size_lost.psd";
            string outputFilePng = "output.png";

            using (var psdImage = (PsdImage)Image.Load(srcFile))
            {
                var textLayer = (TextLayer)psdImage.Layers[0];
                textLayer.TextData.UpdateLayerData();

                psdImage.Save(outputFilePng, new PngOptions());
            }

PSDNET-693. Hinzufügen von Unterstützung für Objekt- und Einheits-Array-Strukturen: ObAr / UnFl-Signaturen

            void AssertAreEqual(object actual, object expected)
            {
                if (!object.Equals(actual, expected))
                {
                    throw new FormatException(string.Format("Actual value {0} are not equal to expected {1}.", actual, expected));
                }
            }

            string dataDir = "PSDNET693_1\\";
            var sourceFilePath = dataDir + "LayeredSmartObjects8bit2.psd";
            using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
            {
                UnitArrayStructure verticalStructure = null;
                foreach (Layer imageLayer in image.Layers)
                {
                    foreach (var imageResource in imageLayer.Resources)
                    {
                        var resource = imageResource as PlLdResource;
                        if (resource != null && resource.IsCustom)
                        {
                            foreach (OSTypeStructure structure in resource.Items)
                            {
                                if (structure.KeyName.ClassName == "customEnvelopeWarp")
                                {
                                    AssertAreEqual(typeof(DescriptorStructure), structure.GetType());
                                    var custom = (DescriptorStructure)structure;
                                    AssertAreEqual(custom.Structures.Length, 1);
                                    var mesh = custom.Structures[0];
                                    AssertAreEqual(typeof(ObjectArrayStructure), mesh.GetType());
                                    var meshObjectArray = (ObjectArrayStructure)mesh;
                                    AssertAreEqual(meshObjectArray.Structures.Length, 2);
                                    var vertical = meshObjectArray.Structures[1];
                                    AssertAreEqual(typeof(UnitArrayStructure), vertical.GetType());
                                    verticalStructure = (UnitArrayStructure)vertical;
                                    AssertAreEqual(verticalStructure.UnitType, UnitTypes.Pixels);
                                    AssertAreEqual(verticalStructure.ValueCount, 16);

                                    break;
                                }
                            }
                        }
                    }
                }

                AssertAreEqual(true, verticalStructure != null);
            }

PSDNET-600. Problembehebung beim Speichern von modifizierten PSD-Bildern mit CMYK-Farbraum 16 Bit pro Kanal

            using (PsdImage image = (PsdImage)Image.Load("cub16bit_cmyk.psd"))
            {
                RasterCachedImage raster = image.Layers[0];
                Aspose.PSD.Graphics graphics = new Graphics(raster);
                int width = raster.Width;
                int height = raster.Height;
                Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);
                graphics.DrawRectangle(new Aspose.PSD.Pen(Color.DarkGray, 1),  rect);
                image.Save("output.png", new PngOptions());
            }

PSDNET-664. Unterstreichung und Durchstreichung gehen nach dem Fokussieren auf den Text in der Datei, die mit Aspose.PSD gespeichert wurde, verloren

            string sourceFile = "source.psd";
            string outputFile = "output.psd";

            using (var image = (PsdImage)Image.Load(sourceFile))
            {
                var layers = image.Layers;
                var textLayer = (TextLayer)layers[1];

                textLayer.TextData.Items[0].Style.Underline = true;
                textLayer.TextData.Items[1].Style.Strikethrough = true;

                textLayer.TextData.UpdateLayerData();

                image.Save(outputFile, new PsdOptions(image));
            }

PSDNET-710. Regression: Aspose.PSD 20.7.0 verändert Schriftgrößen für ältere Dateien

            string srcFile = "font_size_lost.psd";
            string outputFilePng = "output.png";

            using (var psdImage = (PsdImage)Image.Load(srcFile))
            {
                var textLayer = (TextLayer)psdImage.Layers[0];
                textLayer.TextData.UpdateLayerData();

                psdImage.Save(outputFilePng, new PngOptions());
            }