Aspose.PSD for .NET 19.12 - Sürüm Notları

Anahtar Özet Kategori
PSDNET-11 Bağlantılı Katman Desteği Özellik
PSDNET-131 SoCoResource Desteği Özellik
PSDNET-115 Metin Katmanı bir dize ile güncellendiği zaman mevcut Satır Sonlarına Satır Sonları eklenmektedir Hata
PSDNET-157 PSB olarak kaydetme sırasında PNG’in donması Hata
PSDNET-250 RLE sıkıştırması olan katmansız CMYK PSD dosyasının yüklenirken istisna alınması Hata
PSDNET-161 Metin katmanları güncellenirken istisna alınması Hata
PSDNET-222 Katman maskeleri olan bazı PSD dosyalarının yanlış işlenmesi Hata
PSDNET-244 Belirli Globalization.CultureInfo.CurrentCulture ile PSD kaydetme işlemi yapılırsa yükleme sırasında istisnaların alınması Hata

Genel API Değişiklikleri

Eklenen API’lar:

  • P:Aspose.PSD.FileFormats.Psd.PsdImage.LinkedLayersManager
  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskDataFull.UserMaskData
  • T:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager
  • M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.LinkLayers(Aspose.PSD.FileFormats.Psd.Layers.Layer[])
  • M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.UnlinkLayer(Aspose.PSD.FileFormats.Psd.Layers.Layer)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLayersByLinkGroupId(System.Int16)
  • M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLinkGroupId(Aspose.PSD.FileFormats.Psd.Layers.Layer)

Kaldırılan API’lar:

  • P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskData.ImageDataVector

Kullanım örnekleri:

PSDNET-11. Bağlantılı Katman Desteği

           using (var psd = (PsdImage)Image.Load("ornek.psd"))

            {

                Layer[] layers = psd.Layers;

                // tüm katmanları bir bağlantılı grup içinde bağlayın

                short layersLinkGroupId = psd.LinkedLayersManager.LinkLayers(layers);

                // bir katman için kimlik alın

                short linkGroupId = psd.LinkedLayersManager.GetLinkGroupId(layers[0]);

                if (layersLinkGroupId != linkGroupId)

                {

                    throw new Exception("layersLinkGroupId ve linkGroupId eşit değil.");

                }

                // belirli link grup kimliği ile tüm bağlantılı katmanlar alın.

                Layer[] linkedLayers = psd.LinkedLayersManager.GetLayersByLinkGroupId(linkGroupId);

                // her katmanı gruptan bağlantısız hale getir

                foreach (var linkedLayer in linkedLayers)

                {

                    psd.LinkedLayersManager.UnlinkLayer(linkedLayer);

                }

                // grupta hiç katman olmayan bir link grubu kimliği için NULL al

                linkedLayers = psd.LinkedLayersManager.GetLayersByLinkGroupId(linkGroupId);

                if (linkedLayers != null)

                {

                    throw new Exception("linkedLayers alanı NULL değil.");

                }

                psd.Save("psdnet11_output.psd");

            }

PSDNET-131. SoCoResource Desteği

      // SoCoResource Desteği

    string sourceFileName = "RenkDolguKatmanı.psd";

    string exportPath = "SoCoResource_Düzenlenmiş.psd";

    var im = (PsdImage)Image.Load(sourceFileName);

    using (im)

    {

        foreach (var layer in im.Layers)

        {

            if (layer is FillLayer)

            {

                var fillLayer = (FillLayer)layer;

                foreach (var resource in fillLayer.Resources)

                {

                    if (resource is SoCoResource)

                    {

                        var socoResource = (SoCoResource)resource;

                        Assert.AreEqual(Color.FromArgb(63, 83, 141), socoResource.Color);

                        socoResource.Color = Color.Red;

                        break;

                    }

                 }

                 break;

             }

            im.Save(exportPath);

        }

    }

PSDNET-115. Metin Katmanı bir dize ile güncellendiği zaman mevcut Satır Sonlarına Satır Sonları eklenmektedir

           const string YeniMetin = "abcdef\rzxcvbn";

        string kaynakDosyaYolu = "AsyaKarakterleriIçinTestDosyası.psd";

        string çıktıDosyaYolu = "sonuç.psd";

        using (var görüntü = (PsdImage)Image.Load(kaynakDosyaYolu))

        {

            var katman = (TextLayer)görüntü.Layers[0];

            var görüntüSeçenekleri = new PsdOptions(görüntü);

            katman.UpdateText(YeniMetin);

            görüntü.Save(çıktıDosyaYolu, görüntüSeçenekleri);

        }

        using (var oluşturulanGörüntü = (PsdImage)Image.Load(çıktıDosyaYolu))

        {

            var oluşturulanKatman = (TextLayer)oluşturulanGörüntü.Layers[0];

            if (YeniMetin != oluşturulanKatman.Text)

            {

                throw new InvalidDataException("Güncellenmiş metin geçersiz");

            }

        }

PSDNET-157. PSB olarak kaydetme sırasında PNG’in donması

       // PSB'yi PNG olarak Kaydetme

    string kaynakDosyaAdı = "örnek.psb";

    string çıkışDosyaAdı = "örnek.png";

    using (PsdImage görüntü = (PsdImage)Image.Load(kaynakDosyaAdı))

    {

        PngOptions seçenekler = new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha };

        görüntü.Save(çıkışDosyaAdı, seçenekler);

    }

 PSDNET-250. RLE sıkıştırmalı katmansız CMYK PSD dosyasını yüklerken istisna

     void LoadRawDataFromPsd()

        {

            string kaynakYol = "CmykVeAlphaOlan.psd";

            using (RasterImage görüntü = (RasterImage)Image.Load(kaynakYol))

            {

                var hamVeriAyarları = görüntü.RawDataSettings;

                RawDataTester yükleyici = new RawDataTester();

                görüntü.LoadRawData(görüntü.Bounds, hamVeriAyarları, yükleyici);

            }

        }

        class RawDataTester : IPartialRawDataLoader

        {

            public void Process(Rectangle dikdörtgen, byte[] pikseller, Point başlangıç, Point son)

            {

            }

            public void Process(Rectangle dikdörtgen, byte[] pikseller, Point başlangıç, Point son, LoadOptions yüklemeSeçenekleri)

            {

            }

        }

 PSDNET-161. Metin katmanlarını güncellerken istisna

      // Bir PSD dosyasını görüntü olarak yükleyin ve PsdImage'a dönüştürün

    using (PsdImage psdGörüntü = (PsdImage)Image.Load("örnek.psd"))

    {

        foreach (var katman in psdGörüntü.Layers)

        {

            if (katman is TextLayer)

            {

                TextLayer metinKatmanı = katman as TextLayer;

                metinKatmanı.UpdateText("test güncelleme", new Point(0, 0), 15.0f, Color.Purple);

            }

        }

        psdGörüntü.Save("PSDdosyasındaMetinKatmanıGüncelleme_out.psd");

    }

PSDNET-222. Katman maskeleri olan bazı PSD dosyalarının yanlış işlenmesi

     int ölçek = 2;

        string[] isimler = {

                             "BirNormalVeDüzenlemeVeKatmanMaskesiVeVektörleBirTane",

                             "KatmanMaskesiRgbleBirlikteDüzeylerKapasitesi",

                             "KatmanMaskesiCmykleDüzeylerKapasitesi",

                             "RenkDengesiDüzenlemeKatmanı"

                         };

        for (int i = 0; i < isimler.Length; i++)

        {

            string kaynakDosyaYolu = isimler[i] + ".psd";

            string çıktıDosyaYolu = "çıktı_" + kaynakDosyaYolu;

            string çıktıPngDosyaYolu = "çıktı_" + isimler[i] + ".png";

            var psdYüklemeSeçenekleri = new PsdLoadOptions() { LoadEffectsResource = true };

            using (PsdImage görüntü = (PsdImage)Image.Load(kaynakDosyaYolu, psdYüklemeSeçenekleri))

            {

                görüntü.Resize(görüntü.Width * ölçek, görüntü.Height * ölçek);

                görüntü.Save(çıktıDosyaYolu, new PsdOptions());

                görüntü.Save(çıktıPngDosyaYolu, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });

            }

        }

PSDNET-244. Belirli Globalization.CultureInfo.CurrentCulture ile PSD kaydetme işlemi yapılırsa yükleme sırasında istisnaların alınması

     for (int i = 0; i <= 6; i++)

        {

            string kaynakDosyaAdı = string.Format("örnek-{0}.psd", i);

            var psdYüklemeSeçenekleri = new PsdLoadOptions() { LoadEffectsResource = true };

            var psdKaydetmeSeçenekleri = new PsdOptions();

            var kültür = new System.Globalization.CultureInfo("ru-RU");

            System.Threading.Thread.CurrentThread.CurrentCulture = kültür;

            System.Threading.Thread.CurrentThread.CurrentUICulture = kültür;

            string çıktıDosyaAdı = "çıktı-" + kaynakDosyaAdı;

            // Bir PSD dosyasını görüntü olarak yükleyin ve PsdImage'a dönüştürün

            using (PsdImage görüntü = (PsdImage)Image.Load(kaynakDosyaAdı, psdYüklemeSeçenekleri))

            {

                görüntü.Resize(160, 120);

                görüntü.Save(çıktıDosyaAdı, psdKaydetmeSeçenekleri);

            }

            kültür = new System.Globalization.CultureInfo("en-US");

            System.Threading.Thread.CurrentThread.CurrentCulture = kültür;

            System.Threading.Thread.CurrentThread.CurrentUICulture = kültür;

            // Bir PSD dosyasını görüntü olarak yükleyin ve PsdImage'a dönüştürün

            using (PsdImage görüntü2 = (PsdImage)Image.Load(kaynakDosyaAdı, psdYüklemeSeçenekleri))

            {

                görüntü2.Resize(160, 120);

                görüntü2.Save(çıktıDosyaAdı, psdKaydetmeSeçenekleri);

            }

        }