Bộ lọc thông minh Smart Objects PSD csharp

Bộ lọc thông minh được sử dụng để cho phép chỉnh sửa hình ảnh không phá hủy. Chúng có thể chỉnh sửa lại vì chúng vẫn giữ nguyên cài đặt bộ lọc và có thể được điều chỉnh hoặc xóa khỏi ảnh nếu cần. Hơn nữa, bạn có thể thêm một hoặc nhiều bộ lọc thông minh với điều kiện một lớp là một đối tượng thông minh. Bài viết này trình bày cách chỉnh sửa và cập nhật các bộ lọc thông minh cũng như thêm các bộ lọc mới như GaussianBlurSmartFilter, AddNoiseSmartFilter, v.v. vào hình ảnh theo chương trình trong C#.

Làm việc với Bộ lọc thông minh và Đối tượng thông minh trong tệp PSD - Cài đặt API C#

Bạn cần cài đặt API Aspose.PSD for .NET để làm việc với hình ảnh PSD theo chương trình trong C# .NET. Nhanh chóng tải xuống tệp DLL của nó từ phần Tải xuống hoặc sử dụng lệnh cài đặt NuGet trong Visual Studio IDE:

PM> Install-Package Aspose.PSD

Thêm, chỉnh sửa và cập nhật bộ lọc thông minh và đối tượng thông minh trong C#

Bạn có thể chỉnh sửa, cập nhật hoặc thêm bộ lọc thông minh mới cho các đối tượng thông minh trong tệp PSD bằng cách làm theo các bước bên dưới:

  • Tải hình ảnh PSD đầu vào bằng cách sử dụng lớp Hình ảnh.
  • Tải lớp đối tượng thông minh từ tệp đầu vào.
  • Chỉnh sửa bộ lọc thông minh và kiểm tra các thuộc tính của nó như bán kính, chế độ hòa trộn, độ mờ, v.v.
  • Cập nhật các thuộc tính của bộ lọc và thêm các bộ lọc thông minh mới như làm mờ Gaussian, Thêm tiếng ồn, v.v.
  • Lưu tệp đầu ra với các bộ lọc được cập nhật và kiểm tra các thuộc tính đã cập nhật.

Đoạn mã dưới đây cho biết cách chỉnh sửa, cập nhật hoặc thêm bộ lọc thông minh trên các đối tượng thông minh trong hình ảnh PSD theo chương trình trong C#:

            var sourceFilter = "r2_SmartFilters.psd";
            var outputPsd = "output.psd";

            using (var image = (PsdImage)Image.Load(sourceFilter))
            {
                SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

                // chỉnh sửa bộ lọc thông minh
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // kiểm tra các giá trị bộ lọc
                Console.WriteLine("Radius: " + gaussianBlur.Radius); // 3.1
                Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Dissolve
                Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 90d
                Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // true

                // cập nhật các giá trị bộ lọc
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // thêm các mục bộ lọc mới
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // áp dụng các thay đổi
                smartObj.SmartFilters.UpdateResourceValues();

                // Áp dụng các bộ lọc
                smartObj.SmartFilters.Filters[0].Apply(image.Layers[2]);
                smartObj.SmartFilters.Filters[4].ApplyToMask(image.Layers[2]);

                image.Save(outputPsd);
            }

            using (var image = (PsdImage)Image.Load(outputPsd))
            {
                SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

                GaussianBlurSmartFilter gaussianBlur = (Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // kiểm tra các giá trị bộ lọc
                Console.WriteLine("\n\n");
                Console.WriteLine("Radius: " + gaussianBlur.Radius); // 1d
                Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Divide
                Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 75d
                Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // false

                Console.WriteLine(smartObj.SmartFilters.Filters[5] is GaussianBlurSmartFilter); // true
                Console.WriteLine(smartObj.SmartFilters.Filters[6] is AddNoiseSmartFilter); // true
            }

Ảnh chụp màn hình bên dưới hiển thị kết quả mẫu được tạo trên bảng điều khiển sau khi thực thi đoạn mã trên:

Hơn nữa, bạn có thể tải xuống các tệp đầu vào và đầu ra từ liên kết này để tham khảo.

Khám phá các tính năng của API

Có nhiều lớp và thuộc tính khác để làm việc với PSD và các hình ảnh khác. Bạn có thể truy cập phần tài liệu để biết thêm thông tin.

Nhận Giấy phép Đánh giá Miễn phí

Bạn có thể đánh giá API mà không có bất kỳ giới hạn đánh giá nào bằng cách yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách làm việc với Bộ lọc thông minh trên Đối tượng thông minh trong ảnh PSD theo lập trình trong C#. Nó thảo luận về cách chỉnh sửa và cập nhật các bộ lọc thông minh hiện có trong một hình ảnh, cũng như thêm các bộ lọc thông minh mới như GaussianBlurSmartFilter, AddNoiseSmartFilter, v.v. vào một hình ảnh. Hơn nữa, điều đáng chú ý ở đây là bạn không cần cài đặt bất kỳ Photoshop, hay bất kỳ ứng dụng xử lý ảnh nào khác để làm việc với tính năng này vì API không phụ thuộc vào bất kỳ công cụ nào khác. Trong trường hợp bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng viết thư cho chúng tôi tại diễn đàn.

Xem thêm

Thêm chữ ký vào hình ảnh theo chương trình trong C#