کلید خلاصه دسته‌بندی
PSDNET-207 پشتیبانی از لایه تنظیم تعادل رنگ ویژگی
PSDNET-145 پشتیبانی از لایه تنظیم معکوس ویژگی
PSDNET-139 پیاده‌سازی بازنمونه‌گیر بیکیوبی ویژگی
PSDNET-169 افزودن پشتیبانی از صدور PSD به PDF با Clipping Mask ویژگی
PSDNET-168 افزودن پشتیبانی از صدور PSD به PDF با لایه‌های تنظیم ویژگی
PSDNET-179 مشکل در دریافت اثر سایه لایه بهبود
PSDNET-203 هنگام به‌روزرسانی متن با کاراکتر / (خط مستقیم)، فایل نمی‌تواند در فتوشاپ باز شود اشکال
PSDNET-199 نمی‌توان فایل PSD را ذخیره کرد هنگامی که لایه متن تنها حاوی خط جداسازی است اشکال
PSDNET-185 اندازه فونت اشتباه استخراج شده اشکال

تغییرات عمومی API

API‌های اضافه شده:

API‌های حذف شده:

نمونه‌های استفاده:

PSDNET-207. پشتیبانی از لایه تنظیم تعادل رنگ

            var filePath = "ColorBalance.psd";

            var outputPath = "ColorBalance_out.psd";

            using (var im = (PsdImage)Image.Load(filePath))

            {

                foreach (var layer in im.Layers)

                {

                    var cbLayer = layer as ColorBalanceAdjustmentLayer;

                    if (cbLayer != null)

                    {

                        cbLayer.ShadowsCyanRedBalance = 30;

                        cbLayer.ShadowsMagentaGreenBalance = -15;

                        cbLayer.ShadowsYellowBlueBalance = 40;

                        cbLayer.MidtonesCyanRedBalance = -90;

                        cbLayer.MidtonesMagentaGreenBalance = -25;

                        cbLayer.MidtonesYellowBlueBalance = 20;

                        cbLayer.HighlightsCyanRedBalance = -30;

                        cbLayer.HighlightsMagentaGreenBalance = 67;

                        cbLayer.HighlightsYellowBlueBalance = -95;

                        cbLayer.PreserveLuminosity = true;

                    }

                }

                im.Save(outputPath);

            }

PSDNET-145. پشتیبانی از لایه تنظیم معکوس

            var filePath = "InvertStripes_before.psd";

            var outputPath = "InvertStripes_after.psd";

            using (var im = (PsdImage)Image.Load(filePath))

            {

                im.AddInvertAdjustmentLayer();

                im.Save(outputPath);

            }

PSDNET-139. پیاده‌سازی بازنمونه‌گیر بیکیوبی

             string sourceFile = "sample.psd";

            string destName = "ResamplerCubicConvolutionStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.CubicConvolution);

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

            }

            string sourceFile = "sample.psd";

            string destName = "ResamplerCatmullRomStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.CatmullRom);

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

            }

            string sourceFile = "sample.psd";

            string destName = "ResamplerMitchellStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.Mitchell);

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

            }

            string sourceFile = "sample.psd";

            string destName = "ResamplerCubicBSplineStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.CubicBSpline);

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

            string sourceFile = "sample.psd";

            string destName = "ResamplerSinCStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.SinC);

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

            }

            string sourceFile = "sample.psd";

            string destName = "ResamplerBellStripes_after.psd";

            // Load an existing image into an instance of PsdImage class

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

            {

                image.Resize(300, 300, ResizeType.Bell);

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

            }

PSDNET-169. افزودن پشتیبانی از صدور PSD به PDF با Clipping Mask

     using (PsdImage image = (PsdImage)Image.Load("clip.psd"))

    {

      image.Save("output.pdf", new PdfOptions());

    }

PSDNET-168. افزودن پشتیبانی از صدور PSD به PDF با لایه‌های تنظیم

      using (PsdImage image = (PsdImage)Image.Load("example.psd"))

    {

      image.Save("document.pdf", new PdfOptions());

    }

PSDNET-203. هنگام به‌روزرسانی متن با / (خط مستقیم)، فایل نمی‌تواند در فتوشاپ باز شود

         var psdImage = (PsdImage)image;

        var layers = psdImage.Layers;

        for (var index = layers.Length - 1; index >= 0; index--)

        {

            var layer = layers[index];

            if (!(layer is TextLayer)) continue;

            var textLayer = (TextLayer)layer;

            textLayer.UpdateText("/");

        }

        var imageOptions = new PsdOptions(psdImage);

        var fileName = Path.GetFileName(filePath);

        var outputFilePath = Path.GetDirectoryName(filePath) + "\\target_" + fileName;

        psdImage.Save(outputFilePath, imageOptions);

PSDNET-199. فایل PSD نمی‌تواند ذخیره شود هنگامی که لایه متن حاوی خط جداسازی باشد

 string filePath = "testLineBreaks2.psd";

string outputPath = "testLineBreaks2_changed.psd";

var newText = "\r";

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

        {

            var psdImage = image as PsdImage;

            if (image == null)

            {

                return;

            }

            var layers = psdImage.Layers;

            for (var index = layers.Length - 1; index >= 0; index--)

            {

                var layer = layers[index] as TextLayer;

                if (layer == null)

                {

                    continue;

                }

                layer.UpdateText(newText);

            }

            var imageOptions = new PsdOptions(psdImage);

            psdImage.Save(outputPath, imageOptions);

        }

PSDNET-185. اندازه فونت اشتباه استخراج شده

             // استخراج اندازه فرمت اشتباه

            string filePath = "直播+电商.psd";

            var tolerance = 0.001;

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

            {

                int layerIndex = 22;

                // پیش API (استفاده از اولین فونت پاراگراف)

                PsdImage psdImage = image as PsdImage;

                double[] matrix = ((TextLayer)psdImage.Layers[layerIndex]).TransformMatrix;

                double baseFontSize = ((TextLayer)psdImage.Layers[layerIndex]).Font.Size;

                double fontSize = matrix[0] * baseFontSize;

                // بررسی اندازه اصلی فونت

                if (Math.Abs(100.0 - baseFontSize) > tolerance)

                {

                    throw new Exception("اندازه فونت بطور نادرست خوانده شد");

                }

                // بررسی اندازه واقعی فونت

                if (Math.Abs(88.425 - fontSize) > tolerance)

                {

                    throw new Exception("TransformMatrix به صورت نادرست خوانده شد");

                }

                // API جدید (یک لایه متنی می‌تواند حاوی هر تعداد اندازه فونت باشد)

                ITextPortion[] portions = ((TextLayer)psdImage.Layers[layerIndex]).TextData.Items;

                ITextStyle style = portions[0].Style;

                double fontSizeOfPortion = matrix[0] * style.FontSize;

                // بررسی اندازه پایه بخش فونت

                if (Math.Abs(100.0 - style.FontSize) > tolerance)

                {

                    throw new Exception("اندازه فونت بطور نادرست خوانده شد");

                }

                // بررسی اندازه واقعی بخش فونت

                if (Math.Abs(88.425 - fontSizeOfPortion) > tolerance)

                {

                    throw new Exception("TransformMatrix به صورت نادرست خوانده شد");

                }

            }

PSDNET-179. مشکل در گرفتن لایه DropShadowEffect

       // زمانی که مشخصه UseGlobalLight اثر سایه به 'صحیح' باشد، آنگاه شیء DropShadowEffect از مقدار زاویه از مشخصه GlobalAngle شیء PsdImage استفاده می‌کند.

		using (PsdImage image = (PsdImage)Image