Pada artikel ini, Anda akan mempelajari cara menemukan layer dan memperbarui teks atau gambar layer di dalam file PSD Photoshop secara dinamis menggunakan C# .NET.
PSD adalah format default yang digunakan oleh Adobe Photoshop untuk menyimpan dokumennya dalam struktur berlapis-lapis di mana setiap lapisan berisi teks, gambar, objek grafis, dan elemen pendukung lainnya. Mungkin ada kasus ketika Anda memiliki template PSD dan Anda perlu membuat beberapa gambar yang dihasilkan dengan mengisi lapisan teks dan gambar di dalam template. Contoh dari skenario tersebut adalah membuat kartu karyawan dalam suatu organisasi. Untuk mengotomatiskan proses ini, saya akan menunjukkan cara:
- temukan dan perbarui lapisan teks dalam file PSD menggunakan C#
- temukan dan perbarui lapisan gambar dalam file PSD menggunakan C#
Perpustakaan C# untuk Menemukan dan Memperbarui Lapisan PSD
Aspose.PSD for .NET memungkinkan pembuatan dan modifikasi file PSD tanpa menginstal Adobe Photoshop atau Illustrator. API dapat berguna dalam skenario di mana Anda perlu memperbarui lapisan PSD secara dinamis menggunakan C# atau VB.NET. Anda dapat menginstal API menggunakan NuGet Package Manager atau mengunduh dan mereferensikan DLLs secara manual.
Temukan dan Perbarui Lapisan Teks di File PSD menggunakan C#
Aspose.PSD for .NET memungkinkan Anda menemukan lapisan yang diinginkan dalam file PSD menggunakan nama lapisan. Setelah Anda menemukan lapisannya, Anda dapat memperbarui kontennya. Berikut adalah langkah-langkah untuk menemukan dan memperbarui lapisan teks dalam file PSD.
- Buat instance dari kelas PsdImage dan inisialisasi dengan jalur file PSD.
- Akses layer di PSD menggunakan properti PsdImage.Layers.
- Cocokkan nama tampilan setiap lapisan untuk mendapatkan lapisan yang diinginkan ke dalam objek TextLayer.
- Perbarui teks menggunakan metode TextLayer.UpdateText(String).
- Simpan gambar yang diperbarui menggunakan metode PsdImage.Save(String).
Contoh kode berikut menunjukkan cara menemukan dan memperbarui lapisan teks di file PSD menggunakan C#.
// Muat file PSD
using (PsdImage image = (PsdImage)Image.Load(@"template.psd"))
{
// Temukan Layer menggunakan nama layer
var layerToUpdateText = (TextLayer)FindLayer("Name", image);
// Cara sederhana untuk memperbarui teks
layerToUpdateText.UpdateText("John Doe");
// Simpan file PSD yang diperbarui
image.Save("updated-psd.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
// Dapatkan lapisan aa dalam file PSD
var layers = image.Layers;
// Temukan lapisan yang diinginkan
foreach (var layer in layers)
{
// Cocokkan nama layer
if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
{
return layer;
}
}
return null;
}
Di bawah ini adalah tangkapan layar dari file input PSD yang kami gunakan dalam contoh ini:
Berikut ini adalah file PSD yang dihasilkan memiliki lapisan teks yang diperbarui:
Temukan dan Perbarui Lapisan Gambar di File PSD menggunakan C#
Untuk menangani objek grafis seperti gambar, Aspose.PSD for .NET menampilkan kelas Graphics. Kelas ini digunakan untuk menghapus atau menggambar grafik di dalam lapisan PSD. Berikut adalah langkah-langkah untuk menemukan lapisan PSD dan memperbarui gambarnya.
- Buat objek dari kelas PsdImage untuk memuat file PSD.
- Temukan layer dalam file PSD dari objek PsdImage.Layers.
- Muat gambar yang ingin Anda gambar di layer dalam objek Stream.
- Buat objek Layer baru dan inisialisasi dengan objek Stream yang dibuat pada langkah sebelumnya.
- Buat instance dari kelas Graphics dan inisialisasi dengan layer yang akan diganti.
- Bersihkan layer menggunakan metode Graphics.Clear().
- Gambarlah gambar pada layer menggunakan metode Graphics.DrawImage(Image, Rectangle).
- Simpan file menggunakan metode PsdImage.Save(String).
Contoh kode berikut menunjukkan cara menemukan dan memperbarui lapisan gambar di file PSD menggunakan C#.
// Muat file PSD
using (PsdImage image = (PsdImage)Image.Load(@"updated-psd.psd"))
{
// Mari kita cari layer yang ingin kita ganti
var layerToReplace = FindLayer("ProfilePicture", image);
using (Stream stream = new FileStream(@"avatar.png", FileMode.Open))
{
var newLayer = new Layer(stream);
// Menggambar layer baru di atas yang lama
var graphic = new Graphics(layerToReplace);
graphic.Clear(Color.Empty);
graphic.DrawImage(newLayer, new Rectangle(new Point(), new Size(layerToReplace.Width, layerToReplace.Height)));
}
// Simpan file PSD yang diperbarui
image.Save("updated-psd2.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
// Dapatkan lapisan aa dalam file PSD
var layers = image.Layers;
// Temukan lapisan yang diinginkan
foreach (var layer in layers)
{
// Cocokkan nama layer
if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
{
return layer;
}
}
return null;
}
Berikut adalah tangkapan layar file PSD setelah memperbarui lapisan gambar menggunakan kode yang disebutkan di atas:
Kesimpulan
Pada artikel ini, kita telah melihat cara menemukan dan memperbarui lapisan dalam file Photoshop (PSD) menggunakan C#. Panduan langkah demi langkah dan contoh kode menunjukkan cara menemukan lapisan dan memperbarui teks atau gambarnya di file Photoshop PSD. Anda dapat mempelajari lebih lanjut tentang Aspose.PSD for .NET menggunakan dokumentasi.