Aspose.PSD dla .NET 20.6 - Notatki dotyczące wydania

Klucz Podsumowanie Kategoria
PSDNET-606 Obsługa zasobu LnkE Funkcja
PSDNET-386 Obsługa zasobu britResource (Zasób warstwy regulacji jasności/kontrastu) Funkcja
PSDNET-219 Przeniesienie ustawienia DefaultReplacementFont do klasy ImageOptionsBase Udoskonalenie
PSDNET-596 Grupa warstw z trybem mieszania innych niż PassThrough nie jest renderowana Błąd
PSDNET-610 Wyjątek NullReference podczas próby konwersji określonego pliku Psd na obraz Błąd
PSDNET-636 Zmiana rozmiaru plików PSD działa nieprawidłowo, jeśli jest maska w warstwie regulacji, która ma puste granice Błąd
PSDNET-611 Wyjątek OverflowException podczas próby otwarcia określonego pliku Psd Błąd
PSDNET-565 Obraz Psd w trybie RGB 16 bit/na kanał aktualizuje warstwy tylko w podglądzie Błąd
PSDNET-652 Wyjątek podczas ładowania określonego pliku PSD z łączonym zasobem LnkE i właściwością adobeStockLicenseState Błąd
PSDNET-640 Zmiany w masce warstwy PSD są odrzucane podczas zapisywania Błąd
PSDNET-593 Zapisanie pliku AI w formacie Jpeg2000 nie działa Błąd
PSDNET-638 Nieprawidłowa kolejność warstw po dodaniu grupy warstw do pustej grupy warstw Błąd

Zmiany w API publicznym

Dodane API:

  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskData.MaskRectangle
  • P:Aspose.PSD.ImageOptionsBase.DefaultReplacementFont
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.Type
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.UniqueId
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.Version
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.OriginalFileName
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.FileType
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.FileCreator
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.ChildDocId
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.AssetModTime
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.AssetLockedState
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.IsLibraryLink
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.CompId
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.OriginalCompId
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.HasFileOpenDescriptor
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource.Length
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSourceType
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSourceType.None
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSourceType.liFD
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSourceType.liFE
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSourceType.liFA
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.#ctor
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.#ctor(System.Int32,System.Guid,System.String,System.String,System.String)
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.Date
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.FileSize
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.FileName
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.FullPath
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.RelativePath
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.ElementRef
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.ElementName
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.AdobeStockId
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFeDataSource.AdobeStockLicenseState
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFdDataSource
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFdDataSource.#ctor
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LiFdDataSource.#ctor(System.Int32,System.Guid,System.String,System.String,System.String)
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.IsEmpty
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.PsdVersion
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.Save(Aspose.PSD.StreamContainer,System.Int32)
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.Signature
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.Length
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkResource.DataSourceCount
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lnk2Resource
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lnk2Resource.Key
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.Lnk2Resource.TypeToolKey
  • T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource.#ctor
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource.#ctor(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LinkDataSource[])
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource.Key
  • F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource.TypeToolKey
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.LnkeResource.Item(System.Int32)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.TypeToolInfoStructures.StringStructure.#ctor(Aspose.PSD.FileFormats.Psd.Layers.LayerResources.ClassID,System.String)

Usunięte API:

  • P:Aspose.PSD.ImageLoadOptions.PsdLoadOptions.DefaultReplacementFont

Przykłady użycia:

PSDNET-606. Obsługa zasobu LnkE

string message = "PrzykładObsługiZasobuLnkE działa niepoprawnie.";

void AssertIsTrue(bool condition)

{

    if (!condition)

    {

        throw new FormatException(message);

    }

}

void AssertAreEqual(object actual, object expected)

{

    if (!object.Equals(actual, expected))

    {

        throw new FormatException(message);

    }

}

// Ten przykład demonstruje, jak pobrać i ustawić właściwości zasobu Photoshop Psd LnkE, który zawiera informacje o zewnętrznym połączonym pliku.

void PrzykladObslugiZasobuLnkE(

    string sciezkaPliku,

    int dlugosc,

    int dlugosc2,

    int dlugosc3,

    int dlugosc4,

    string pelnaSciezka,

    string data,

    double czasModyfikacji,

    string childDocId,

    bool zablokowany,

    string unikalneId,

    string nazwa,

    string oryginalnaNazwaPliku,

    string typPliku,

    long rozmiar)

{

    string nazwaPliku = Path.GetFileName(sciezkaPliku);

    string sciezkaWyjsciowa = @"Output\" + nazwaPliku;

    using (PsdImage obraz = (PsdImage)Image.Load(sciezkaPliku))

    {

        LnkeResource zasobLnke = null;

        foreach (var zasob in obraz.GlobalLayerResources)

        {

            zasobLnke = zasob as LnkeResource;

            if (zasobLnke != null)

            {

                AssertAreEqual(zasobLnke.Length, dlugosc);

                AssertAreEqual(zasobLnke.UniqueId, new Guid(unikalneId));

                AssertAreEqual(zasobLnke.FullPath, pelnaSciezka);

                AssertAreEqual(zasobLnke.Date.ToString(CultureInfo.InvariantCulture), data);

                AssertAreEqual(zasobLnke.AssetModTime, czasModyfikacji);

                AssertAreEqual(zasobLnke.AssetLockedState, zablokowany);

                AssertAreEqual(zasobLnke.FileName, nazwa);

                AssertAreEqual(zasobLnke.FileSize, rozmiar);

                AssertAreEqual(zasobLnke.ChildDocId, childDocId);

                AssertAreEqual(zasobLnke.Version, 7);

                AssertAreEqual(zasobLnke.FileType, typPliku);

                AssertAreEqual(zasobLnke.FileCreator, string.Empty);

                AssertAreEqual(zasobLnke.OriginalFileName, oryginalnaNazwaPliku);

                AssertAreEqual(zasobLnke.CompId, -1);

                AssertAreEqual(zasobLnke.OriginalCompId, -1);

                AssertIsTrue(zasobLnke.HasFileOpenDescriptor);

                AssertIsTrue(!zasobLnke.IsEmpty);

                AssertIsTrue(zasobLnke.Type == LinkResourceType.liFE);

                zasobLnke.FullPath =

                    @"file:///C:/Aspose/net/Aspose.Psd/test/testdata/Images/Psd/SmartObjects/rgb8_2x2.png";

                AssertAreEqual(zasobLnke.Length, dlugosc2);

                zasobLnke.FileName = "rgb8_2x23.png";

                AssertAreEqual(zasobLnke.Length, dlugosc3);

                zasobLnke.ChildDocId = Guid.NewGuid().ToString();

                AssertAreEqual(zasobLnke.Length, dlugosc4);

                zasobLnke.Date = DateTime.Now;

                zasobLnke.AssetModTime = double.MaxValue;

                zasobLnke.FileSize = long.MaxValue;

                zasobLnke.FileType = "test";

                zasobLnke.FileCreator = "plik";

                zasobLnke.CompId = int.MaxValue;

                break;

            }

        }

        AssertIsTrue(zasobLnke != null);

        obraz.Save(sciezkaWyjsciowa, new PsdOptions(obraz));

    }

    using (PsdImage obraz = (PsdImage)Image.Load(sciezkaWyjsciowa))

    {

        obraz.Save(

            Path.ChangeExtension(sciezkaWyjsciowa, "png"),

            new PngOptions

            {

                ColorType = PngColorType.TruecolorWithAlpha

            });

    }

}

// Ten przykład demonstruje, jak pobrać i ustawić właściwości zasobu Photoshop Psd LnkE zawierającego informacje o zewnętrznie połączonym pliku JPEG.

this.PrzykladObslugiZasobuLnkE(

    @"..\..\..\Issues\IMAGINGNET-2375\photooverlay_5_new.psd",

    0x21c,

    0x26c,

    0x274,

    0x27c,

    @"file:///C:/Users/cvallejo/Desktop/photo.jpg",

    "05/09/2017 22:24:51",

    0,

    "F062B9DB73E8D124167A4186E54664B0",

    false,

    "02df245c-36a2-11e7-a9d8-fdb2b61f07a7",

    "photo.jpg",

    "photo.jpg",

    "JPEG",

    0x1520d);

// Ten przykład demonstruje, jak pobrać i ustawić właściwości zasobu Photoshop Psd LnkE zawierającego informacje o zewnętrznie połączonym pliku PNG.

this.PrzykladObslugiZasobuLnkE(

    "rgb8_2x2_linked.psd",

    0x284,

    0x290,

    0x294,

    0x2dc,

    @"file:///C:/Aspose/net/Aspose.Psd/test/testdata/Issues/PSDNET-491/rgb8_2x2.png",

    "04/14/2020 14:23:44",

    0,

    "",

    false,

    "5867318f-3174-9f41-abca-22f56a75247e",

    "rgb8_2x2.png",

    "rgb8_2x2.png",

    "png",

    0x53);

// Ten przykład demonstruje, jak pobrać i ustawić właściwości zasobu Photoshop Psd LnkE zawierającego informacje o aktywie z bibliotek CC Libraries.

this.PrzykladObslugiZasobuLnkE(

    "rgb8_2x2_asset_linked.psd",

    0x398,

    0x38c,

    0x388,

    0x3d0,

    @"CC Libraries Asset “rgb8_2x2_linked/rgb8_2x2” (Funkcja dostępna w Photoshopie CC 2015)",

    "01/01/0001 00:00:00",

    1588890915488.0d,

    "",

    false,

    "ec15f0a8-7f13-a640-b928-7d29c6e9859c",

    "rgb8_2x2_linked",

    "rgb8_2x2.png",

    "png",

    0);

PSDNET-201. Obsługa postępu konwersji dokumentu

string sciezkaPlikuZrodlowego = "Apple.psd";

Stream wyjscieStrumien = new MemoryStream();

ProgressEventHandler lokalnyObslugaZdarzenPostepu = delegate(ProgressEventHandlerInfo informacjePostepu)

{

      string wiadomosc = string.Format(

           "{0} {1}: {2} z {3}",

           informacjePostepu.Description,

           informacjePostepu.EventType,

           informacjePostepu.Value,

           informacjePostepu.MaxValue);

      Console.WriteLine(wiadomosc);

};

Console.WriteLine("---------- Wczytywanie Apple.psd ----------");

var opcjeWczytywania = new PsdLoadOptions() { ProgressEventHandler = lokalnyObslugaZdarzenPostepu };

using (PsdImage obraz = (PsdImage)Image.Load(sciezkaPlikuZrodlowego, opcjeWczytywania))

{

      Console.WriteLine("---------- Zapisywanie Apple.psd w formacie PNG ----------");

      obraz.Save(

           wyjscieStrumien,

           new PngOptions()

           {

                 ColorType = PngColorType.Truecolor, ProgressEventHandler = lokalnyObslugaZdarzenPostepu

           });

      Console.WriteLine("---------- Zapisywanie Apple.psd w formacie PSD ----------");

      obraz.Save(

           wyjscieStrumien,

           new PsdOptions()

           {

                 ColorMode = ColorModes.Rgb,

                 ChannelsCount = 4,

                 ProgressEventHandler = lokalnyObslugaZdarzenPostepu

           });

}

PSDNET-386. Obsługa zasobu britResource (Zasób warstwy regulacji jasności/kontrastu)

 /* Ten przykład przedstawia, jak można programistycznie zmienić zasób warstwy jasności/kontrastu obrazu Psd

   Jest to nisko poziomowe API Aspose.PSD. Możesz używać warstwy jasności/kontrastu przez jej API, co będzie o wiele łatwiejsze,

   ale bezpośrednia edycja zasobu Photoshopa daje Ci większą kontrolę nad zawartością pliku PSD.  */

string sciezka = @"BrightnessContrastPS6.psd";

string sciezkaWyjsciowa = @"BrightnessContrastPS6_output.psd";

using (PsdImage obraz = (PsdImage)Image