Bu makalede, C# .NET kullanarak Photoshop’un PSD dosyalarında katmanları nasıl bulacağınızı ve katmanın metnini veya görüntüsünü nasıl güncelleyeceğinizi öğreneceksiniz.
PSD, Adobe Photoshop tarafından belgelerini her katmanın metin, resimler, grafik nesneleri ve desteklenen diğer öğeleri içerdiği çok katmanlı bir yapıda kaydetmek için kullandığı varsayılan biçimdir. Bir PSD şablonunuz olduğunda ve şablonun içindeki metin ve görüntü katmanlarını doldurarak birkaç sonuçtaki görüntü oluşturmanız gerektiğinde durum olabilir. Böyle bir senaryonun bir örneği, bir kuruluş içinde çalışan kartları oluşturmaktır. Bu işlemi otomatikleştirmek için size şunları nasıl yapacağınızı göstereceğim:
- C# kullanarak PSD dosyalarındaki metin katmanlarını bulun ve güncelleyin
- C# kullanarak PSD dosyalarındaki görüntü katmanlarını bulun ve güncelleyin
PSD Katmanlarını Bulmak ve Güncellemek için C# Kitaplığı
Aspose.PSD for .NET, Adobe Photoshop veya Illustrator kurulmadan PSD dosyalarının oluşturulmasına ve değiştirilmesine izin verir. API, PSD katmanlarını C# veya VB.NET kullanarak dinamik olarak güncellemeniz gereken senaryoda kullanışlı olabilir. API’yi NuGet Paket Yöneticisi kullanarak yükleyebilir veya DLL’lerini manuel olarak indirebilir ve başvurabilirsiniz.
C# kullanarak PSD Dosyalarında Metin Katmanlarını Bulun ve Güncelleyin
Aspose.PSD for .NET, katmanın adını kullanarak istediğiniz katmanı PSD dosyalarında bulmanızı sağlar. Katmanı bulduğunuzda içeriğini güncelleyebilirsiniz. Aşağıdakiler, bir PSD dosyasında bir metin katmanını bulma ve güncelleme adımlarıdır.
- PsdImage sınıfının bir örneğini oluşturun ve onu PSD dosyasının yolu ile başlatın.
- PsdImage.Layers özelliğini kullanarak PSD’deki katmanlara erişin.
- İstediğiniz katmanı TextLayer nesnesine almak için her katmanın görünen adını eşleştirin.
- TextLayer.UpdateText(String) yöntemini kullanarak metni güncelleyin.
- Güncellenen görüntüyü PsdImage.Save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanılarak PSD dosyasındaki metin katmanının nasıl bulunacağını ve güncelleneceğini gösterir.
// PSD dosyasını yükle
using (PsdImage image = (PsdImage)Image.Load(@"template.psd"))
{
// Katmanın adını kullanarak Katmanı bulun
var layerToUpdateText = (TextLayer)FindLayer("Name", image);
// Metni güncellemenin basit yolu
layerToUpdateText.UpdateText("John Doe");
// Güncellenmiş PSD dosyasını kaydedin
image.Save("updated-psd.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
// PSD dosyasında aa katmanları alın
var layers = image.Layers;
// İstediğiniz katmanı bulun
foreach (var layer in layers)
{
// Katmanın adını eşleştir
if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
{
return layer;
}
}
return null;
}
Bu örnekte kullandığımız giriş PSD dosyasının ekran görüntüsü aşağıdadır:
Aşağıdakiler, güncellenmiş metin katmanına sahip olan ortaya çıkan PSD dosyasıdır:
C# kullanarak PSD Dosyalarında Görüntü Katmanlarını Bulun ve Güncelleyin
Aspose.PSD for .NET, görüntüler gibi grafik nesnelerle başa çıkmak için Graphics sınıfını kullanıma sunar. Bu sınıf, PSD katmanları içindeki grafikleri temizlemek veya çizmek için kullanılır. Aşağıdakiler, bir PSD katmanı bulma ve görüntüsünü güncelleme adımlarıdır.
- PSD dosyasını yüklemek için PsdImage sınıfından bir nesne oluşturun.
- PsdImage.Layers nesnesinden PSD dosyasındaki katmanı bulun.
- Katmanda çizmek istediğiniz görüntüyü bir Stream nesnesine yükleyin.
- Yeni bir Katman nesnesi oluşturun ve onu önceki adımda oluşturulan Akış nesnesiyle başlatın.
- Graphics sınıfının bir örneğini oluşturun ve onu değiştirilecek katmanla başlatın.
- Graphics.Clear() yöntemini kullanarak katmanı temizleyin.
- Graphics.DrawImage(Image, Rectangle) yöntemini kullanarak görüntüyü katmanda çizin.
- PsdImage.Save(String) yöntemini kullanarak dosyayı kaydedin.
Aşağıdaki kod örneği, C# kullanılarak PSD dosyasında görüntü katmanlarının nasıl bulunacağını ve güncelleneceğini gösterir.
// PSD dosyasını yükle
using (PsdImage image = (PsdImage)Image.Load(@"updated-psd.psd"))
{
// Değiştirmek istediğimiz katmanı bulalım
var layerToReplace = FindLayer("ProfilePicture", image);
using (Stream stream = new FileStream(@"avatar.png", FileMode.Open))
{
var newLayer = new Layer(stream);
// Yeni katmanın eski üzerine çizimi
var graphic = new Graphics(layerToReplace);
graphic.Clear(Color.Empty);
graphic.DrawImage(newLayer, new Rectangle(new Point(), new Size(layerToReplace.Width, layerToReplace.Height)));
}
// Güncellenmiş PSD dosyasını kaydedin
image.Save("updated-psd2.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
// PSD dosyasında aa katmanları alın
var layers = image.Layers;
// İstediğiniz katmanı bulun
foreach (var layer in layers)
{
// Katmanın adını eşleştir
if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
{
return layer;
}
}
return null;
}
Yukarıda belirtilen kodu kullanarak görüntü katmanını güncelledikten sonra PSD dosyasının ekran görüntüsü aşağıdadır:
Çözüm
Bu yazıda, C# kullanarak bir Photoshop dosyasındaki (PSD) katmanları nasıl bulacağınızı ve güncelleyeceğinizi gördük. Adım adım kılavuz ve kod örnekleri, Photoshop PSD dosyalarında katmanların nasıl bulunacağını ve bunların metin veya görüntüsünün nasıl güncelleneceğini gösterir. dokümantasyon kullanarak Aspose.PSD for .NET hakkında daha fazlasını keşfedebilirsiniz.