Aspose.PSD cho .NET 20.6 - Ghi Chú Ra Mắt

Khóa Tóm Tắt Danh Mục
PSDNET-606 Hỗ trợ của LnkE Resource Tính Năng
PSDNET-386 Hỗ trợ của britResource (Resource của Lớp Điều chỉnh Độ sáng/Tương phản) Tính Năng
PSDNET-219 Di chuyển thiết lập DefaultReplacementFont vào lớp ImageOptionsBase Cải Tiến
PSDNET-596 Nhóm Lớp với Chế Độ Trộn Không Phải PassThrough Không Được Hiển Thị Lỗi
PSDNET-610 Ngoại lệ NullReference khi thử chuyển đổi tệp Psd cụ thể thành hình ảnh Lỗi
PSDNET-636 Thay đổi kích thước tệp PSD hoạt động không chính xác nếu có mặt nạ trong lớp điều chỉnh có ranh giới trống Lỗi
PSDNET-611 Ngoại lệ OverflowException khi thử mở tệp Psd cụ thể Lỗi
PSDNET-565 Ảnh Psd với chế độ RGB 16 bit/ kênh chỉ cập nhật lớp trên xem trước Lỗi
PSDNET-652 Ngoại lệ khi tải tệp PSD cụ thể với LnkE Resource phức tạp và thuộc tính adobeStockLicenseState Lỗi
PSDNET-640 Thay đổi Mặt Nạ Lớp PSD không được lưu khi lưu Lỗi
PSDNET-593 Lưu Tệp AI sang Định dạng Jpeg2000 không hoạt động Lỗi
PSDNET-638 Thứ tự Lớp Không Chính Xác sau khi thêm Nhóm Lớp vào Nhóm Lớp trống Lỗi

Thay Đổi Công Khai API

API Thêm vào:

  • 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)

API Bị Xóa:

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

Ví dụ Sử dụng:

PSDNET-606. Hỗ trợ của LnkE Resource

 string message = "Ví dụ về Hỗ trợ của LnkE Resource hoạt động không chính xác.";

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);

    }

}

// Ví dụ này minh họa cách lấy và thiết lập các thuộc tính của Lớp Photoshop Psd LnkE Resource chứa thông tin về tệp được liên kết bên ngoài.

void ExampleOfLnkEResourceSupport(

    string filePath,

    int length,

    int length2,

    int length3,

    int length4,

    string fullPath,

    string date,

    double assetModTime,

    string childDocId,

    bool locked,

    string uid,

    string name,

    string originalFileName,

    string fileType,

    long size)

{

    string fileName = Path.GetFileName(filePath);

    string outputPath = @"Output\" + fileName;

    using (PsdImage image = (PsdImage)Image.Load(filePath))

    {

        LnkeResource lnkeResource = null;

        foreach (var resource in image.GlobalLayerResources)

        {

            lnkeResource = resource as LnkeResource;

            if (lnkeResource != null)

            {

                AssertAreEqual(lnkeResource.Length, length);

                AssertAreEqual(lnkeResource.UniqueId, new Guid(uid));

                AssertAreEqual(lnkeResource.FullPath, fullPath);

                AssertAreEqual(lnkeResource.Date.ToString(CultureInfo.InvariantCulture), date);

                AssertAreEqual(lnkeResource.AssetModTime, assetModTime);

                AssertAreEqual(lnkeResource.AssetLockedState, locked);

                AssertAreEqual(lnkeResource.FileName, name);

                AssertAreEqual(lnkeResource.FileSize, size);

                AssertAreEqual(lnkeResource.ChildDocId, childDocId);

                AssertAreEqual(lnkeResource.Version, 7);

                AssertAreEqual(lnkeResource.FileType, fileType);

                AssertAreEqual(lnkeResource.FileCreator, string.Empty);

                AssertAreEqual(lnkeResource.OriginalFileName, originalFileName);

                AssertAreEqual(lnkeResource.CompId, -1);

                AssertAreEqual(lnkeResource.OriginalCompId, -1);

                AssertIsTrue(lnkeResource.HasFileOpenDescriptor);

                AssertIsTrue(!lnkeResource.IsEmpty);

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

                lnkeResource.FullPath =

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

                AssertAreEqual(lnkeResource.Length, length2);

                lnkeResource.FileName = "rgb8_2x23.png";

                AssertAreEqual(lnkeResource.Length, length3);

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

                AssertAreEqual(lnkeResource.Length, length4);

                lnkeResource.Date = DateTime.Now;

                lnkeResource.AssetModTime = double.MaxValue;

                lnkeResource.FileSize = long.MaxValue;

                lnkeResource.FileType = "test";

                lnkeResource.FileCreator = "file";

                lnkeResource.CompId = int.MaxValue;

                break;

            }

        }

        AssertIsTrue(lnkeResource != null);

        image.Save(outputPath, new PsdOptions(image));

    }

    using (PsdImage image = (PsdImage)Image.Load(outputPath))

    {

        image.Save(

            Path.ChangeExtension(outputPath, "png"),

            new PngOptions

            {

                ColorType = PngColorType.TruecolorWithAlpha

            });

    }

}

// Ví dụ này minh họa cách lấy và thiết lập các thuộc tính của Lớp PSD LnkE Resource chứa thông tin về tệp JPEG được liên kết bên ngoài.

this.ExampleOfLnkEResourceSupport(

    @"..\..\..\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);

// Ví dụ này minh họa cách lấy và thiết lập các thuộc tính của PSD LnkE Resource chứa thông tin về tệp PNG được liên kết bên ngoài.

this.ExampleOfLnkEResourceSupport(

    "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);

// Ví dụ này minh họa cách lấy và thiết lập các thuộc tính của Photoshop Psd LnkE Resource chứa thông tin về tài sản thư viện CC liên kết bên ngoài.

this.ExampleOfLnkEResourceSupport(

    "rgb8_2x2_asset_linked.psd",

    0x398,

    0x38c,

    0x388,

    0x3d0,

    @"CC Libraries Asset “rgb8_2x2_linked/rgb8_2x2” (Tính năng có sẵn trong Photoshop 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. Hỗ trợ tiến trình chuyển đổi tài liệu

 string sourceFilePath = "Apple.psd";

Stream outputStream = new MemoryStream();

ProgressEventHandler localProgressEventHandler = delegate(ProgressEventHandlerInfo progressInfo)

{

      string message = string.Format(

           "{0} {1}: {2} trên {3}",

           progressInfo.Description,

           progressInfo.EventType,

           progressInfo.Value,

           progressInfo.MaxValue);

      Console.WriteLine(message);

};

Console.WriteLine("---------- Đang Tải Apple.psd ----------");

var loadOptions = new PsdLoadOptions() { ProgressEventHandler = localProgressEventHandler };

using (PsdImage image = (PsdImage)Image.Load(sourceFilePath, loadOptions))

{

      Console.WriteLine("---------- Đang Lưu Apple.psd sang Định dạng PNG ----------");

      image.Save(

           outputStream,

           new PngOptions()

           {

                 ColorType = PngColorType.Truecolor, ProgressEventHandler = localProgressEventHandler

           });

      Console.WriteLine("---------- Đang Lưu Apple.psd sang Định dạng PSD ----------");

      image.Save(

           outputStream,

           new PsdOptions()

           {

                 ColorMode = ColorModes.Rgb,

                 ChannelsCount = 4,

                 ProgressEventHandler = localProgressEventHandler

           });

}

PSDNET-386. Hỗ trợ của britResource (Resource của Lớp Điều chỉnh Độ sáng/Tương phản)

 /* Ví dụ này minh họa cách bạn có thể thay đổi Độ sáng/Tương phản Lớp Ảnh PSD - BritResource theo cách lập trình

   Đây là một API Aspose.PSD Cấp thấp. Bạn có thể sử dụng Lớp Điều chỉnh Độ sáng/Tương phản thông qua API của nó, điều này sẽ dễ dàng hơn,

   nhưng chỉnh sửa tài nguyên trực tiếp từ PhotoShop cho phép bạn kiểm soát nhiều hơn về nội dung tệp PSD.  */

string path = @"BrightnessContrastPS6.psd";

string outputPath = @"BrightnessContrastPS6_output.psd";

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

{

    foreach (var layer in im.Layers)

    {

        if (layer is BrightnessContrastLayer)

        {

            foreach (var layerResource in layer.Resources)

            {

                if (layerResource is BritResource)

                {

                    var resource = (BritResource)layerResource;

                    isRequiredResourceFound = true;

                    if (resource.Brightness != -40 ||

                        resource.Contrast != 10 ||

                        resource.LabColor != false ||

                        resource.MeanValueForBrightnessAndContrast != 127)

                    {

                        throw new Exception("BritResource was read wrong");

                    }

                    // Kiểm tra chỉnh sửa  lưu