دفترچه‌ی یادداشت Aspose.PSD برای .NET 20.5 - یادداشت‌های انتشار

کلید خلاصه دسته‌بندی
PSDNET-595 پشتیبانی از ماسک‌های لایه برای گروه‌های لایه ویژگی
PSDNET-201 پشتیبانی از پیشرفت تبدیل سند ویژگی
PSDNET-275 پشتیبانی از منبع Nvrt (منبع لایه تنظیم معکوس) ویژگی
PSDNET-124 پشتیبانی از ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال ویژگی
PSDNET-589 بازسازی مثال‌ها در GitHub پیشرفت
PSDNET-587 تراز متن از طریق ITextPortion برای زبان‌های راست به چپ کار نمی‌کند. فایل خروجی دیمیجه می‌شود. اشکال
PSDNET-604 استثنا هنگام تلاش برای باز کردن یک فایل Psd خاص با رنگ Lab و 8 بیت/کانال اشکال
PSDNET-598 رفع مشکل ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال به فرمت 8 بیت بر کانال PSD خاکستری اشکال
PSDNET-599 رفع مشکل ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال به فرمت 16 بیت بر کانال RGB PSD اشکال

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

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

  • هیچکدام

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

  • هیچکدام

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

PSDNET-595. پشتیبانی از ماسک‌های لایه برای گروه‌های لایه

 string srcFile = "psdnet595.psd";

string outputPng = "output.png";

string outputPsd = "output.psd";

using (var input = (PsdImage)Image.Load(srcFile))

{

     input.Save(outputPng, new PngOptions());

     input.Save(outputPsd);

}

PSDNET-201. پشتیبانی از پیشرفت تبدیل سند

 string sourceFilePath = "Apple.psd";

Stream outputStream = new MemoryStream();

ProgressEventHandler localProgressEventHandler = delegate(ProgressEventHandlerInfo progressInfo)

{

      string message = string.Format(

           "{0} {1}: {2} out of {3}",

           progressInfo.Description,

           progressInfo.EventType,

           progressInfo.Value,

           progressInfo.MaxValue);

      Console.WriteLine(message);

};

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

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

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

{

      Console.WriteLine("---------- Saving Apple.psd to PNG format ----------");

      image.Save(

           outputStream,

           new PngOptions()

           {

                 ColorType = PngColorType.Truecolor, ProgressEventHandler = localProgressEventHandler

           });

      Console.WriteLine("---------- Saving Apple.psd to PSD format ----------");

      image.Save(

           outputStream,

           new PsdOptions()

           {

                 ColorMode = ColorModes.Rgb,

                 ChannelsCount = 4,

                 ProgressEventHandler = localProgressEventHandler

           });

}

PSDNET-275. پشتیبانی از منبع Nvrt (منبع لایه تنظیم معکوس)

 using (var psdImage = (PsdImage)Image.Load("InvertAdjustmentLayer.psd"))

{

      foreach (var layer in psdImage.Layers)

      {

           if (layer is InvertAdjustmentLayer)

           {

                 foreach (var layerResource in layer.Resources)

                 {

                      if (layerResource is NvrtResource)

                      {

                           // منبع Nvrt پشتیبانی می‌شود.

                           var resource = (NvrtResource)layerResource;

                           break;

                      }

                 }

           }

      }

}

PSDNET-124. رفع مشکل ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال به فرمت 8 بیت بر کانال PSD خاکستری

 void SaveToPsdThenLoadAndSaveToPng(

    string file,

    ColorModes colorMode,

    short channelBitsCount,

    short channelsCount,

    CompressionMethod compression,

    int layerNumber)

{

    string filePath = file + ".psd";

    string postfix = colorMode.ToString() + channelBitsCount + "_" + channelsCount + "_" + compression;

    string exportPath = @"Output\" + file + postfix + ".psd";

    PsdOptions psdOptions = new PsdOptions()

    {

        ColorMode = colorMode,

        ChannelBitsCount = channelBitsCount,

        ChannelsCount = channelsCount,

        CompressionMethod = compression

    };

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

    {

        RasterCachedImage raster = layerNumber >= 0 ? (RasterCachedImage)image.Layers[layerNumber] : image;

        Aspose.PSD.Graphics graphics = new Graphics(raster);

        int width = raster.Width;

        int height = raster.Height;

        Rectangle rect = new Rectangle(

            width / 3,

            height / 3,

            width - (2 * (width / 3)) - 1,

            height - (2 * (height / 3)) - 1);

        graphics.DrawRectangle(new Aspose.PSD.Pen(Color.DarkGray, 1), rect);

        image.Save(exportPath, psdOptions);

    }

    string pngExportPath = Path.ChangeExtension(exportPath, "png");

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

    {

        // باید هیچ استثنا وجود نداشته باشد.

        image.Save(pngExportPath, new PngOptions() { ColorType = PngColorType.GrayscaleWithAlpha });

    }

}

SaveToPsdThenLoadAndSaveToPng("grayscale5x5", ColorModes.Cmyk, 16, 5, CompressionMethod.RLE, 0);

SaveToPsdThenLoadAndSaveToPng("argb16bit_5x5", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, 0);

SaveToPsdThenLoadAndSaveToPng("argb16bit_5x5_no_layers", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, -1);

SaveToPsdThenLoadAndSaveToPng("argb8bit_5x5", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, 0);

SaveToPsdThenLoadAndSaveToPng("argb8bit_5x5_no_layers", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, -1);

SaveToPsdThenLoadAndSaveToPng("cmyk16bit_5x5_no_layers", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, -1);

SaveToPsdThenLoadAndSaveToPng("index8bit_5x5", ColorModes.Grayscale, 16, 2, CompressionMethod.RLE, -1);

PSDNET-587. تراز متن از طریق ITextPortion برای زبان‌های راست به چپ کار نمی‌کند. فایل خروجی دیمیجه می‌شود.

 string sourceFileName = "bidi.psd";

string outputFileName = "bidiOutput.psd";

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

{

    var layer = (TextLayer)image.Layers[2];

    var portions = layer.TextData.Items;

    portions[0].Paragraph.Justification = 2;

    layer.TextData.UpdateLayerData();

    image.Save(outputFileName);

}

 PSDNET-604. استثنا هنگام تلاش برای باز کردن یک فایل Psd خاص با رنگ Lab و 8 بیت/کانال

 string srcFile = "Untitled-1.psd";

string outputFilePsd = "output.psd";

using (var psdImage = (PsdImage)Image.Load(srcFile))

{

    psdImage.Save(outputFilePsd);

}

// پرونده LAB بدون ایجاد استثنا بارگذاری و ذخیره می‌شود.

PSDNET-598. رفع مشکل ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال به فرمت 8 بیت بر کانال PSD خاکستری

 string sourceFileName = "grayscale16bit.psd";

string exportFileName = "grayscale16bit_output.psd";

PsdOptions psdOptions = new PsdOptions()

{

    ColorMode = ColorModes.Grayscale,

    ChannelBitsCount = 8,

    ChannelsCount = 2

};

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

{

    RasterCachedImage raster = image.Layers[0];

    Aspose.PSD.Graphics graphics = new Graphics(raster);

    int width = raster.Width;

    int height = raster.Height;

    Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);

    graphics.DrawRectangle(new Aspose.PSD.Pen(Color.DarkGray, 1), rect);

    image.Save(exportFileName, psdOptions);

}

string pngExportPath = Path.ChangeExtension(exportFileName, "png");

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

{

    // باید هیچ استثنا وجود نداشته باشد.

    image.Save(pngExportPath, new PngOptions() { ColorType = PngColorType.GrayscaleWithAlpha });

}

PSDNET-599. رفع مشکل ذخیره تصویر PSD با حالت رنگ خاکستری با 16 بیت برای هر کانال به فرمت 16 بیت بر کانال RGB PSD

 string sourceFileName = "grayscale16bit.psd";

string exportFileName = "grayscale16bit_output.psd";

PsdOptions psdOptions = new PsdOptions()

{

    ColorMode = ColorModes.Rgb,

    ChannelBitsCount = 8,

    ChannelsCount = 4

};

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

{

    RasterCachedImage raster = image.Layers[0];

    Aspose.PSD.Graphics graphics = new Graphics(raster);

    int width = raster.Width;

    int height = raster.Height;

    Rectangle rect = new Rectangle(width / 3, height / 3, width - (2 * (width / 3)) - 1, height - (2 * (height / 3)) - 1);

    graphics.DrawRectangle(new Aspose.PSD.Pen(Color.DarkGray, 1), rect);

    image.Save(exportFileName, psdOptions);

}

string pngExportPath = Path.ChangeExtension(exportFileName, "png");

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

{

    // باید هیچ استثنا وجود نداشته باشد.

    image.Save(pngExportPath, new PngOptions() { ColorType = PngColorType.GrayscaleWithAlpha });

}