Aspose.PSD pro .NET 18.12 - Poznámky k vydání

Klíč Souhrn Kategorie
PSDNET-76 Podpora vrstvy obrysu Funkce
PSDNET-83 Podpora efektu přechodu Funkce
PSDNET-84 Podpora efektu vzoru Funkce
PSDNET-89 Přidání možnosti přidat nově vytvořenou běžnou vrstvu do obraze Psd Funkce
PSDNET-93 Po aktualizaci obsahu textové vrstvy s “\” (zpětné lomítko) znakem není možné otevřít výsledný soubor v aplikaci Photoshop Chyba
PSDNET-39 Po exportu s překročenými daty obrazu v režimu barev CMYK jsou obrázky rozbité Chyba
PSDNET-52 Možné: Rotace v PSD nefunguje Chyba
PSDNET-88 Možné: Metody oříznutí v Aspose.Psd nefungují Chyba
PSDNET-91 Použití změn Aspose.Imaging v Aspose.PSD Vylepšení

Změny ve veřejném API

Metoda    Aspose.PSD.FileFormats.Psd.PsdImage.AddRegularLayer

Třída    Aspose.PSD.CoreExceptions.ImageFormats.PsdImageArgumentException

Metoda    Aspose.PSD.CoreExceptions.ImageFormats.PsdImageArgumentException.#ctor(System.String)

Metoda    Aspose.PSD.CoreExceptions.ImageFormats.PsdImageArgumentException.#ctor(System.String,System.Exception)

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.BaseFillSettings

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.BaseFillSettings.#ctor

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.BaseFillSettings.FillType

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.ColorFillSettings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.ColorFillSettings.Color

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.ColorFillSettings.FillType

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.FillType

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.FillType.Color

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.FillType.Gradient

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.FillType.Pattern

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientColorPoint

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientColorPoint.Color

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientColorPoint.Location

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientColorPoint.MedianPointLocation

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.Color

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.AlignWithLayer

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.Dither

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.Reverse

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.Angle

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.GradientType

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.HorizontalOffset

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.VerticalOffset

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.FillType

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.ColorPoints

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.TransparencyPoints

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.AddColorPoint

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.AddTransparencyPoint

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.RemoveTransparencyPoint(Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientTransparencyPoint)

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.RemoveColorPoint(Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientColorPoint)

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientTransparencyPoint

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientTransparencyPoint.Opacity

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientTransparencyPoint.Location

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientTransparencyPoint.MedianPointLocation

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.FillType

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.Linked

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.Scale

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.PointType

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.PatternName

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.PatternId

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.HorizontalOffset

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.VerticalOffset

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.StrokeEffect

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.StrokeEffect.BlendMode

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.StrokeEffect.IsVisible

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.StrokeEffect.FillSettings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.StrokeEffect.Opacity

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.Linear

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.Radial

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.Angle

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.Reflected

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.Diamond

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lfx2Resources.GradientType.ShapeBurst

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor(System.Byte[])

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternData

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternId

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Name

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Height

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Width

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.ImageMode

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Version

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternLength

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Signature

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Key

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Length

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PsdVersion

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.SetPattern(System.Int32[],Aspose.PSD.Rectangle)

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Save(Aspose.PSD.StreamContainer,System.Int32)

Pole/Výčet    Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.TypeToolKey

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.#ctor

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientFillSettings.GenerateLfx2ResourceNodes

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientOverlayEffect

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientOverlayEffect.Settings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientOverlayEffect.BlendMode

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientOverlayEffect.IsVisible

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.GradientOverlayEffect.Opacity

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.Color

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.BlendingOptions.AddGradientOverlay

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.BlendingOptions.AddPatternOverlay

Metoda    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternFillSettings.GenerateLfx2ResourceNodes(System.String,Aspose.PSD.Color,System.String,System.String,System.Double,System.Boolean,Aspose.PSD.PointF)

Třída    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternOverlayEffect

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternOverlayEffect.Settings

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternOverlayEffect.BlendMode

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternOverlayEffect.IsVisible

Vlastnost    Aspose.PSD.FileFormats.Psd.Layers.LayerEffects.PatternOverlayEffect.Opacity

Příklady použití:

PSDNET-76. Podpora vrstvy obrysu

1) Typ výplně - Vzor

     // Efekt obrysu. Typ výplně - Vzor. Příklad

    string zdrojovýSoubor = "Obrys.psd";

    string cestaExportu = "ObrysZmenaVzoru.psd";

    var možnostiNačtení = new MožnostiNačteníPsd()

    {

        NačístZdrojeEfektů = true

    };

    // Příprava nových dat

    var novýVzor = new int[]

    {

         Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(), Color.Aqua.ToArgb(),

         Color.Aqua.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(), Color.Aqua.ToArgb(),

         Color.Aqua.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(), Color.Aqua.ToArgb(),

         Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(), Color.Aqua.ToArgb(),

    };

   var novéHraniceVzoru = new Rectangle(0, 0, 4, 4);

   var id = Guid.NewGuid();

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor, možnostiNačtení))

    {

         var obrysVzoru = (EfektObrysu)im.Vrstvy[3].MožnostiSmíchávání.Efekty[0];

         Assert.AreEqual(BlendMode.Normal, obrysVzoru.RežimSmíchávání);

         Assert.AreEqual(255, obrysVzoru.Průhlednost);

         Assert.AreEqual(true, obrysVzoru.JeViditelný);

         var nastaveníVýplně = (NastaveníVýplněVzorem)obrysVzoru.NastaveníVýplně;

         Assert.AreEqual(FillType.Pattern, nastaveníVýplně.TypVýplně);

         obrysVzoru.Průhlednost = 127;

         obrysVzoru.RežimSmíchávání = BlendMode.Color;

         PattResource zdroj;

         foreach (var globálníZdrojVrstvy in im.GlobálníZdrojeVrstev)

         {

             if (globálníZdrojVrstvy is PattResource)

             {

                  zdroj = (PattResource)globálníZdrojVrstvy;

                  zdroj.IdVzoru = id.ToString();

                  zdroj.Název = "$$$/Presets/Patterns/HorizontalLine1=Horizontal Line 9\0";        

                  zdroj.NastavVzor(novýVzor, novéHraniceVzoru);               

             }

         }

         ((NastaveníVýplněVzorem)nastaveníVýplně).NázevVzoru = "$$$/Presets/Patterns/HorizontalLine1=Horizontal Line 9\0";

         ((NastaveníVýplněVzorem)nastaveníVýplně).IdVzoru = id.ToString() + "\0";

        im.Save(cestaExportu);

    }

    // Tester souboru po editaci

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor, možnostiNačtení))

    {

        var obrysVzoru = (EfektObrysu)im.Vrstvy[3].MožnostiSmíchávání.Efekty[0];

        PattResource zdroj = null;

        foreach (var globálníZdrojVrstvy in im.GlobálníZdrojeVrstev)

        {

            if (globálníZdrojVrstvy is PattResource)

            {

                zdroj = (PattResource)globálníZdrojVrstvy;

            }

        }

        if (zdroj == null)

        {

            throw new Exception("Nenalezen zdroj vzoru");

        }

        // Kontrola dat vzoru

        Assert.AreEqual(novýVzor, zdroj.PatternData);

        Assert.AreEqual(novéHraniceVzoru, new Rectangle(0, 0, zdroj.Width, zdroj.Height));

        Assert.AreEqual(id.ToString(), zdroj.IdVzoru);

        Assert.AreEqual(BlendMode.Color, obrysVzoru.RežimSmíchávání);

        Assert.AreEqual(127, obrysVzoru.Průhlednost);

        var nastaveníVýplně = (NastaveníVýplněVzorem)nastaveníVýplně;

        Assert.AreEqual(FillType.Pattern, nastaveníVýplně.TypVýplně);

    }

2) Typ výplně - Přechod

     // Efekt obrysu. Typ výplně - Přechod. Příklad

    string zdrojovýSoubor = "Obrys.psd";

    string cestaExportu = "ObrysPřechodZměněn.psd";

    var možnostiNačtení = new MožnostiNačteníPsd()

    {

        NačístZdrojeEfektů = true

    };

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor, možnostiNačtení))

    {

        var obrysPřechodu = (EfektObrysu)im.Vrstvy[2].MožnostiSmíchávání.Efekty[0];

        Assert.AreEqual(BlendMode.Normal, obrysPřechodu.RežimSmíchávání);

        Assert.AreEqual(255, obrysPřechodu.Průhlednost);

        Assert.AreEqual(true, obrysPřechodu.JeViditelný);

        var nastaveníVýplně = (NastaveníPřechoduVýplně)obrysPřechodu.NastaveníVýplně;

        Assert.AreEqual(Color.Black, nastaveníVýplně.Barva);

        Assert.AreEqual(FillType.Gradient, nastaveníVýplně.TypVýplně);

        Assert.AreEqual(true, nastaveníVýplně.ZarovnatSvrstvou);

        Assert.AreEqual(GradientType.Linear, nastaveníVýplně.TypPřechodu);

        Assert.IsTrue(Math.Abs(90 - nastaveníVýplně.Uhel) < 0.001, "Úhel je nesprávný");

        Assert.AreEqual(false, nastaveníVýplně.Dither);

        Assert.IsTrue(Math.Abs(0 - nastaveníVýplně.HorizontálníPosun) < 0.001, "Horizontální posun je nesprávný");

        Assert.IsTrue(Math.Abs(0 - nastaveníVýplně.VertikálníPosun) < 0.001, "Vertikální posun je nesprávný");

        Assert.AreEqual(false, nastaveníVýplně.Převrátit);

        // Barvy bodů

        var barevnéBody = nastaveníVýplně.BarevnéBody;

        Assert.AreEqual(2, barevnéBody.Délka);

        Assert.AreEqual(Color.Black, barevnéBody[0].Barva);

        Assert.AreEqual(0, barevnéBody[0].Umístění);

        Assert.AreEqual(50, barevnéBody[0].UmístěníProstředníhoBodu);

        Assert.AreEqual(Color.White, barevnéBody[1].Barva);

        Assert.AreEqual(4096, barevnéBody[1].Umístění);

        Assert.AreEqual(50, barevnéBody[1].UmístěníProstředníhoBodu);

        // Body průhlednosti

        var bodyPrůhlednosti = nastaveníVýplně.BodyPrůhlednosti;

        Assert.AreEqual(2, bodyPrůhlednosti.Délka);

        Assert.AreEqual(0, bodyPrůhlednosti[0].Umístění);

        Assert.AreEqual(50, bodyPrůhlednosti[0].UmístěníProstředníhoBodu);

        Assert.AreEqual(100, bodyPrůhlednosti[0].Průhlednost);

        Assert.AreEqual(4096, bodyPrůhlednosti[1].Umístění);

        Assert.AreEqual(50, bodyPrůhlednosti[1].UmístěníProstředníhoBodu);

        Assert.AreEqual(100, bodyPrůhlednosti[1].Průhlednost);

        // Testování úprav

        nastaveníVýplně.Barva = Color.Green;

        obrysPřechodu.Průhlednost = 127;

        obrysPřechodu.RežimSmíchávání = BlendMode.Color;

        nastaveníVýplně.ZarovnatSvrstvou = false;

        nastaveníVýplně.TypPřechodu = GradientType.Radial;

        nastaveníVýplně.Uhel = 45;

        nastaveníVýplně.Dither = true;

        nastaveníVýplně.HorizontálníPosun = 15;

        nastaveníVýplně.VertikálníPosun = 11;

        nastaveníVýplně.Převrátit = true;

        // Přidání nového barevného bodu

        var barevnýBod = nastaveníVýplně.PřidatBarevnýBod();

        barevnýBod.Barva = Color.Green;        

        barevnýBod.Umístění = 4096;

        barevnýBod.UmístěníProstředníhoBodu = 75;

        // Změna umístění předchozího bodu

        nastaveníVýplně.BarevnéBody[1].Umístění = 1899;

        // Přidání nového bodu průhlednosti

        var bodPrůhlednosti = nastaveníVýplně.PřidatBodPrůhlednosti();

        bodPrůhlednosti.Průhlednost = 25;

        bodPrůhlednosti.UmístěníProstředníhoBodu = 25;

        bodPrůhlednosti.Umístění = 4096;

        // Změna umístění předchozího bodu průhlednosti

        nastaveníVýplně.BodyPrůhlednosti[1].Umístění = 2411;

        im.Save(cestaExportu);

    }

    // Tester souboru po editaci

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor, možnostiNačtení))

    {

         var obrysPřechodu = (EfektObrysu)im.Vrstvy[2].MožnostiSmíchávání.Efekty[0];

         Assert.AreEqual(BlendMode.Color, obrysPřechodu.RežimSmíchávání);

         Assert.AreEqual(127, obrysPřechodu.Průhlednost);

         Assert.AreEqual(true, obrysPřechodu.JeViditelný);

         var nastaveníVýplně = (NastaveníPřechoduVýplně)obrysPřechodu.NastaveníVýplně;

         Assert.AreEqual(Color.Green, nastaveníVýplně.Barva);

         Assert.AreEqual(FillType.Gradient, nastaveníVýplně.TypVýplně);

         // Kontrola barevných bodů

         Assert.AreEqual(3, nastaveníVýplně.BarevnéBody.Délka);

         var bod = nastaveníVýplně.BarevnéBody[0];

         Assert.AreEqual(50, bod.UmístěníProstředníhoBodu);

         Assert.AreEqual(Color.Black, bod.Barva);

         Assert.AreEqual(0, bod.Umístění);

         bod = nastaveníVýplně.BarevnéBody[1];

         Assert.AreEqual(50, bod.UmístěníProstředníhoBodu);

         Assert.AreEqual(Color.White, bod.Barva);

         Assert.AreEqual(1899, bod.Umístění);

         bod = nastaveníVýplně.BarevnéBody[2];

         Assert.AreEqual(75, bod.UmístěníProstředníhoBodu);

         Assert.AreEqual(Color.Green, bod.Barva);

         Assert.AreEqual(4096, bod.Umístění);

         // Kontrola bodů průhlednosti

         Assert.AreEqual(3, nastaveníVýplně.BodyPrůhlednosti.Délka);

         var bodPrůhlednosti = nastaveníVýplně.BodyPrůhlednosti[0];

         Assert.AreEqual(50, bodPrůhlednosti.UmístěníProstředníhoBodu);

         Assert.AreEqual(100, bodPrůhlednosti.Průhlednost);

         Assert.AreEqual(0, bodPrůhlednosti.Umístění);

         bodPrůhlednosti = nastaveníVýplně.BodyPrůhlednosti[1];

         Assert.AreEqual(50, bodPrůhlednosti.UmístěníProstředníhoBodu);

         Assert.AreEqual(100, bodPrůhlednosti.Průhlednost);

         Assert.AreEqual(2411, bodPrůhlednosti.Umístění);

         bodPrůhlednosti = nastaveníVýplně.BodyPrůhlednosti[2];

         Assert.AreEqual(25, bodPrůhlednosti.UmístěníProstředníhoBodu);

         Assert.AreEqual(25, bodPrůhlednosti.Průhlednost);

         Assert.AreEqual(4096, bodPrůhlednosti.Umístění);

    }

PSDNET-84. Podpora efektu vzoru.

    // Efekt překrytí vzorem. Příklad

    string zdrojovýSoubor = "PřekrytíVzorem.psd";

    string cestaExportu = "PřekrytíVzoruZměněno.psd";

    var novýVzor = new int[]

    {

        Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(), Color.Aqua.ToArgb(),

        Color.Aqua.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(), Color.Aqua.ToArgb(),

    };

    var novéHraniceVzoru = new Rectangle(0, 0, 4, 2);

    var id = Guid.NewGuid();

    var novýNázevVzoru = "$$$/Presets/Patterns/Pattern=Nějaký nový název vzoru\0";

    var možnostiNačtení = new MožnostiNačteníPsd()

    {

        NačístZdrojeEfektů = true

    };

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor))

    {

        var staráVrstva = im.Vrstvy[0];

        var staréHranice = staráVrstva.Hranice;

        var staráVrstvaData = im.Vrstvy[0].NačístArgb32Pixely(staréHranice);

        var vrstvy = new Vrstva[4];

        for (int i = 0; i < 4; i++)

        {

            vrstvy[i] = im.PřidatBěžnouVrstvu();

            vrstvy[i].UložitArgb32Pixely(staréHranice, staráVrstvaData);

        }

        im.Resize(186, 602);

        vrstvy[0].Oříznout(new Rectangle(0, 0, 186, 159));

        vrstvy[1].Oříznout(new Rectangle(186, 0, 186, 159));

        vrstvy[2].Oříznout(new Rectangle(0, 159, 186, 142));

        vrstvy[3].Oříznout(new Rectangle(186, 159, 186, 142));

        staráVrstva.Zrušit();

        im.Vrstvy = vrstvy;

        var vrchníOkraj = 0;

        for (int i = 0; i < 4; i++)

        {

            var šířka = vrstvy[i].Šířka;

            var výška = vrstvy[i].Výška;

            vrstvy[i].Levý = 0;

            vrstvy[i].Horní = vrchníOkraj;

            vrstvy[i].Pravý = šířka;

            vrstvy[i].Dolní = výška + vrstvy[i].Horní;

            vrchníOkraj += vrstvy[i].Výška;

        }

        // Uložit psd

        im.Save(cestaExportu, new MožnostiPsd());

    }

PSDNET-93. Po aktualizaci obsahu textové vrstvy s “\” (zpětná lomítka) znakem není možné otevřít výsledný soubor v aplikaci Photoshop.

 using (

var obrázek =

Image.Load(

"příklad.psd"))

{

if (!(obrázek is ObrázekPsd)) return;

                var psdObrázek = (ObrázekPsd)obrázek;

                var vrstvy = psdObrázek.Vrstvy;

                for (var index = vrstvy.Délka - 1; index >= 0; index--)

                {

                    var vrstva = vrstvy[index];

                    if (!(vrstva is TextováVrstva)) continue;

                    var textováVrstva = (TextováVrstva)vrstva;

                    textováVrstva.AktualizovatText("展 就");

                }

                var možnostiObrázku = new MožnostiPsd(psdObrázek);

                psdObrázek.Save("výsledek.psd", možnostiObrázku);

            }

PSDNET-39. Rozbité obrázky po exportu s překročenými daty obrazu v barevném režimu CMYK

     // Rozbité obrázky po exportu s překročenými daty obrazu v barevném režimu CMYK. Příklad

    string zdrojovýSoubor = "PřekročenýObrázekCmykSAdjustmentVrstvou.psd";

    string cestaExportu = "PřekročenýObrázekCmykSAdjustmentVrstvou.png";

    using (var im = (ObrázekPsd)Image.Load(zdrojovýSoubor))

    {        

        im.Save(cestaExportu, new MožnostiPng());

    }

~ PSDNET-52. Možné: Rotace v PSD nefunguje.

  // Rotace v PSD. Příklad

    string zdrojovýSoubor = "Klobouk.psd";

    var možnostiPng = new MožnostiPng() { TypBarevPng = PngColorType.TruecolorWithAlpha };

    // Celková rotace obrázku

    using (ObrázekPsd obrázek = (ObrázekPsd)Image.Load(zdrojovýSoubor))

    {

        for (int i = 0; i < 4; i++)

        {

            int úhel = i * 45;

            obrázek.Rotate(úhel);

            string názevSouboru = "KloboukOtočený" + úhel + ".png";

            obrázek.Save(názevSouboru, možnostiPng);

        }

    }

    // Rotace vrstvy

    using (ObrázekPsd obrázek = (ObrázekPsd)Image.Load(zdrojovýSoubor))

    {

        for (int i = 0; i < 4; i++)

        {

            int úhel = i * 45;

            obrázek.Vrstvy[1].Rotate(úhel);

            string názevSouboru = "VrstvaKloboukuOtočena" + úhel + ".png";

            obrázek.Save(názevSouboru, možnostiPng);

        }

    }