Mengedit layer raster mask dalam file PSD via API
Ikhtisar
Untuk mengotomatisasi penyuntingan format PSD dan mengubah file PSD tanpa Adobe® Photoshop®, Anda dapat menggunakan API Aspose.PSD yang disediakan di bawah ini. Ada fragmen kode C# dan .NET yang dapat membantu Anda memodifikasi file PSD.
Dengan Menggunakan Masker Lapisan dan Vektor PSD kita dapat menyembunyikan dan menampilkan piksel lapisan tanpa menghapusnya secara permanen. Masker raster juga disebut sebagai masker lapisan atau masker pengguna. Akses ke masker raster dan vektor dalam Aspose.PSD disediakan melalui properti lapisan LayerMaskData yang dapat menjadi contoh dari kelas ‘LayerMaskDataShort’ dan ‘LayerMaskDataFull’ yang merupakan turunan dari kelas abstrak ‘LayerMaskData’. Jika sebuah lapisan memiliki masker raster dan vektor maka contoh LayerMaskDataFull disediakan. Jika lapisan hanya memiliki masker raster atau vektor maka contoh LayerMaskDataShort disediakan. Jika properti LayerMaskData null maka lapisan tersebut tidak memiliki masker atau hanya memiliki masker vektor yang dinonaktifkan.
Masker raster dan masker vektor yang dinonaktifkan LayerMaskDataShort Masker raster yang dinonaktifkan LayerMaskDataShort Masker raster dan masker vektor LayerMaskDataFull Masker raster LayerMaskDataShort Masker vektor LayerMaskDataShort Masker vektor yang dinonaktifkan null (Tetapi sumber vektor hadir) |
---|
Bagaimana cara mendapatkan masker raster lapisan dalam file PSD?
Pertama, kita harus mencari tahu apakah sebuah lapisan memiliki masker vektor dan masker lapisan:
Berikut adalah contoh kode sampel yang menunjukkan cara mendapatkan masker raster lapisan
Jika tidak, jenis properti lapisan LayerMaskData adalah LayerMaskDataShort. Dalam hal ini, mari kita periksa jika lapisan hanya memiliki masker raster dengan memeriksa properti Flags. Properti tersebut tidak boleh mengandung LayerMaskFlags.UserMaskFromRenderingOtherData flag, jika tidak maskernya adalah cache masker vektor**.**
Kode untuk mendapatkan masker:
Jika Anda perlu mengambil masker raster sebagai LayerMaskDataShort (untuk manipulasi lebih lanjut) bahkan ketika kedua masker ada, maka LayerMaskDataFull harus diambil dan dikonversi menjadi LayerMaskDataShort. Kode berikut dapat digunakan untuk kedua kasus:
Mengekstrak masker raster dari PSD
Bagaimana cara memeriksa apakah sebuah lapisan dalam file PSD memiliki masker raster?
Kode C# berikut dapat membantu Anda memeriksa apakah sebuah lapisan memiliki masker raster:
Cara mengetahui apakah masker raster diterapkan ke Lapisan PSD
Bagaimana cara menghapus / menambah / memperbarui masker raster lapisan dalam file PSD?
Hanya menghapus / menambah / memperbarui LayerMaskData tidak cukup untuk menyimpan dengan benar karena saluran tidak diperbarui; meskipun mungkin memberikan rendering yang benar. Ini tidak mengubah saluran masker:
Kita harus menggunakan metode AddLayerMask lapisan untuk menghapus / menambah / memperbarui.
Ini menambah/memperbarui baik masker maupun saluran:
Ini menghapus baik masker maupun saluran:
Menghapus masker raster lapisan dalam gambar PSD
Pertama, kita periksa apakah maskernya dalam format pendek dan jika bukan vektor kita hanya dapat memanggil metode AddLayerMask dengan null untuk menghapus masker raster. Tetapi jika maskernya dalam format penuh kita harus mengonversinya ke format pendek sehingga meninggalkan masker vektor saja. Untuk menghapus masker lapisan ini dapat digunakan contoh kode C# .NET berikut:
Potongan kode cara menghapus Layer Mask dari File PSD.
Memperbarui masker raster lapisan dalam gambar PSD
Ini cukup langsung: jika masker dalam format pendek kita harus mengubah ImageData dan MaskRectangle jika perlu, jika tidak UserDataMask dan UserMaskRectangle harus diubah. Contoh kode C# .NET berikut dapat digunakan untuk memperbarui masker lapisan:
Perbarui Masker Lapisan PSD menggunakan C#
Berikut contoh tindakan yang mungkin mengubah masker raster. Ini membalikkan masker pengguna lapisan:
Perbarui Masker Lapisan PSD menggunakan C#
Memperbarui masker vektor dalam file PSD ketika masker raster lapisan ada
Diasumsikan bahwa pengguna telah mengubah sumber jalur vektor. Kemudian bisa memperbarui masker vektor dengan mudah dengan memanggil metode AddLayerMask lapisan:
Perbarui Masker Vektor Lapisan PSD menggunakan C#
Menambahkan masker raster lapisan dalam file PSD
Jika sebuah lapisan tidak memiliki masker kita dapat menambahkan masker raster yang diberikan dengan memanggil metode AddLayerMask.
Jika masker tidak memiliki UserMaskFromRenderingOtherData** flag maka maskernya sudah memiliki masker raster dan kita harus memperbarui seperti yang dijelaskan di atas. Jika tidak, jika masker ini dalam format pendek kita mengonversinya ke format penuh. Jika tidak kita menggunakannya apa adanya. Kemudian memperbarui UserMaskData, UserMaskRectangle, dan properti lain dengan properti masker yang diberikan. Contoh kode C# .NET berikut dapat digunakan untuk menambahkan (memperbarui) masker lapisan:
Tambahkan Layer Mask baru ke PSD
Bagaimana cara memeriksa apakah sebuah masker lapisan diaktifkan?
Untuk mengetahui keadaan masker raster lapisan yang diaktifkan kita dapat memeriksa keadaan bendera LayerMaskFlags.Disabled di properti Flags untuk LayerMaskDataShort atau di RealFlags untuk LayerMaskDataFull. Contoh kode C# .NET berikut dapat digunakan untuk mendapatkan keadaan masker lapisan yang diaktifkan:
Periksa jika sebuah masker diaktifkan:
Bagaimana cara mengaktifkan atau menonaktifkan masker raster lapisan?
Untuk mengaktifkan atau menonaktifkan masker raster lapisan kita dapat mengubah keadaan flag LayerMaskFlags.Disabled di properti Flags untuk LayerMaskDataShort atau di RealFlags untuk LayerMaskDataFull. Contoh kode C# .NET berikut dapat digunakan untuk mengubah keadaan masker lapisan yang diaktifkan:
Aktifkan atau nonaktifkan Masker Raster Lapisan: