Photoshop'ta dolgu katmanı ekleme

Fotoğraflar bilgiyi yansıtmanın çok yararlı bir yoludur. Görüntü oluşturmak için PSD biçimindeki dosyalar kullanılır. Ancak, birkaç Photoshop dosyasını aynı satırda düzenlemek gibi senaryolar olabilir. Örneğin, bir fotoğraf işleme uygulamasının diğer işlemlerle birlikte birden çok Photoshop belgesine bir katman eklemesi gerekebilir. Aspose.PSD for .NET API, PSD, PSB, AI ve diğer birçok dosya biçimiyle çalışmak için birçok özellik sunar. PSD dosyalarına katman eklemeyle ilgili aşağıdaki kullanım örneklerini keşfedelim:

C# kullanarak Photoshop Belgesinde Çalışma Zamanında Dolgu Katmanı Ekleme

Aspose.PSD for .NET API, bir PSD dosyasında dolgu katmanı oluşturmayı destekler. Katmanı mutlaka mevcut bir dosyadan yüklemeniz gerekmez. Çalışma zamanında PSD dosyasına bir dolgu katmanı eklemek için aşağıdaki adımları uygulamanız yeterlidir:

  1. Sayfa boyutlarıyla PsdImage sınıfının bir örneğini başlat
  2. FillLayer sınıfının bir örneğini oluşturun
  3. Katman için Görünen Adı Ayarla
  4. Görüntüye katmanı ekleyin

Aşağıdaki kod parçacığı, C# kullanarak Photoshop’ta dolgu katmanının nasıl ekleneceğini gösterir:

string outputFilePath = Path.Combine(dataDir, "output.psd");

using (var image = new PsdImage(100, 100))
{
    FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);
    colorFillLayer.DisplayName = "Color Fill Layer";
    image.AddLayer(colorFillLayer);

    FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient);
    gradientFillLayer.DisplayName = "Gradient Fill Layer";
    image.AddLayer(gradientFillLayer);

    FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern);
    patternFillLayer.DisplayName = "Pattern Fill Layer";
    patternFillLayer.Opacity = 50;
    image.AddLayer(patternFillLayer);

    image.Save(outputFilePath);
}

Bu kod parçacığı, belirtilen boyutlarda bir PSD dosyası oluşturur; burada aşağıdaki ekran görüntüsü, tam olarak yukarıdaki C# kodu tarafından ayarlanan üç dolgu katmanının adlarını gösterir:

Photoshop'ta Katman Ekleme

C# kullanarak PSD dosyasına Mevcut Dolgu Katmanını Ekleme

Yeni dolgu katmanları oluşturmayı ve eklemeyi zaten öğrendik. Mevcut Photoshop dosyasından nasıl katman ekleneceğini kontrol edelim. Mevcut dolgu katmanlarını ekleme olasılıkları aşağıdadır:

i) C# kullanarak Desen Dolgulu Dolgu Katmanı Ekleme

Bir desen dolgusu, alanı doldurmak için bir görüntüye, çizgiye veya gölgeye sahip olabilir. Bir PSD görüntüsüne Patten Fill ile katman eklemek için aşağıdaki adımları izlemeniz gerekir:

  1. Kaynak PSD dosyasını yükle
  2. Tüm katmanları yineleyin ve FillLayer olup olmadığını kontrol edin
  3. Katman için farklı ayarlar belirleyin
  4. Dolgu Katmanını Düzenle
  5. resmi kaydet

Aşağıdaki kod parçacığı, C# kullanarak Desen dolgusu ile dolgu katmanının nasıl ekleneceğini gösterir:

// Dolgu katmanları için destek ekleyin: Desen
string sourceFileName = dataDir + "PatternFillLayer.psd";
string exportPath = dataDir + "PatternFillLayer_Edited.psd";
double tolerance = 0.0001;
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            FillLayer fillLayer = (FillLayer)layer;
            PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
            if (fillSettings.HorizontalOffset != -46 ||
                fillSettings.VerticalOffset != -45 ||
                fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||
                fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||
                fillSettings.AlignWithLayer != true ||
                fillSettings.Linked != true ||
                fillSettings.PatternHeight != 64 ||
                fillSettings.PatternWidth != 64 ||
                fillSettings.PatternData.Length != 4096 ||
                Math.Abs(fillSettings.Scale - 50) > tolerance)
            {
                throw new Exception("PSD Image was read wrong");
            }
            // düzenleme 
            fillSettings.Scale = 300;
            fillSettings.HorizontalOffset = 2;
            fillSettings.VerticalOffset = -20;
            fillSettings.PatternData = new int[]
            {
           Color.Red.ToArgb(), Color.Blue.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Red.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Blue.ToArgb(),  Color.Red.ToArgb()
            };
            fillSettings.PatternHeight = 3;
            fillSettings.PatternWidth = 3;
            fillSettings.AlignWithLayer = false;
            fillSettings.Linked = false;
            fillSettings.PatternId = Guid.NewGuid().ToString();
            fillLayer.Update();
            break;
        }
    }
    im.Save(exportPath);
}

ii) C# kullanarak Degrade Dolgu ile Dolgu Katmanı Ekleme

Photoshop Belgesinde bir katmanı doldurmak için Degrade dolguyu da kullanabilirsiniz. Aspose.PSD for .NET API, aşağıdaki Degrade dolgu türlerini destekler:

  • Doğrusal
  • Elmas
  • Radyal
  • yansıyan
  • Açı

Aşağıda, degrade dolgulu bir katman ekleme adımları verilmiştir:

Aşağıdaki kod parçacığı, bu adımları temel alır ve C# kullanarak Photoshop belgesinde GradientFill katmanının nasıl ekleneceğini gösterir:

string fileName = dataDir + "FillLayerGradient.psd";
GradientType[] gradientTypes = new[]
{
    GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond
};
using (var image = Image.Load(fileName))
{
    PsdImage psdImage = (PsdImage)image;
    FillLayer fillLayer = (FillLayer)psdImage.Layers[0];
    GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;
    foreach (var gradientType in gradientTypes)
    {
        fillSettings.GradientType = gradientType;
        fillLayer.Update();
        psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

Bu kod parçacığı, her biri PSD dosyasının katmanında farklı türde Degrade dolguya sahip beş farklı dosya oluşturacaktır.

iii) C# kullanarak Renkli Dolgu ile Dolgu Katmanı Ekleme

Bir PSD dosyası olan Photoshop Belgesinde Renk dolgulu bir katman ekleyebilirsiniz. Renk Dolgulu Dolgu Katmanı eklemek veya oluşturmak için aşağıdaki adımları izleyin:

  1. Kaynak PSD görüntüsünü yükle
  2. Tüm katmanları kontrol edin ve FillLayer bulun
  3. Katmanın dolgu ayarlarını oku
  4. Dolgu rengini ayarlayın ve katmanı güncelleyin
  5. PSD görüntüsünü kaydedin

Aşağıdaki kod parçacığı, C# kullanarak Photoshop Belgesinde dolgu katmanının nasıl ekleneceğini gösteren yukarıda belirtilen adımlara dayanmaktadır:

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-psd/Aspose.PSD-for-.NET adresine gidin.

string sourceFileName = dataDir + "ColorFillLayer.psd";
string exportPath = dataDir + "ColorFillLayer_output.psd";

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

using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            var fillLayer = (FillLayer)layer;

            if (fillLayer.FillSettings.FillType != FillType.Color)
            {
                throw new Exception("Wrong Fill Layer");
            }

            var settings = (IColorFillSettings)fillLayer.FillSettings;

            settings.Color = Color.Red;
            fillLayer.Update();
            im.Save(exportPath);
            break;
        }
    }
}

Çözüm

Bu makalede, PSD dosyalarına dolgu katmanı eklemek için birçok olanaktan birkaçını incelediniz. Sıfırdan nasıl katman ekleyeceğinizi ve ayrıca mevcut PSD dosyalarından nasıl katman ekleyeceğinizi öğrendiniz. Farklı Degrade dolgu katmanları da örneklerle birlikte ele alınmaktadır. Aspose.PSD for .NET API tarafından sunulan başka pek çok heyecan verici özellik vardır. Herhangi bir endişeniz olması durumunda lütfen Ücretsiz Destek Forumları aracılığıyla bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız