Lapisan PSD
Ikhtisar
Lapisan PSD Adobe® Photoshop® adalah salah satu konsep terbaik dalam pemrosesan grafis. Lapisan mengandung informasi tentang piksel, dapat memiliki jumlah saluran yang berbeda.
Salah satu bagian terpenting dari Lapisan dalam Dokumen Photoshop adalah Sumber Daya Lapisan. Anda dapat mendapatkan daftar lengkap dari Sumber Daya Lapisan yang didukung dalam PSD dari dokumentasi kami.
Anda dapat menemukan antarmuka pengguna untuk memanipulasi lapisan pada tangkapan layar berikut:
Tetapi Aspose.PSD mengkhususkan diri dalam pemipilan programatik Lapisan PSD melalui C# dan Java.
Dokumentasi tambahan dapat ditemukan dalam Artikel ini: Memanipulasi Gambar. Semua manipulasi dapat diproses ke Pratinjau PSD dan Lapisan, Anda akan menemukan informasi lebih lanjut di Referensi API Gambar Raster Aspose.PSD.
API Lapisan PSD yang Tersedia
- Efek Lapisan
- Properti umum Lapisan
- Metadata Lapisan
Contoh Pengeditan Lapisan melalui C#
Menambahkan Lapisan Baru
Jika Anda ingin menambahkan Lapisan kosong ke Berkas PSD yang dibuka, Anda dapat menggunakan kode berikut.
Menambahkan Lapisan Baru ke Berkas PSD menggunakan API
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Make ability to add the newly generated regular layer to PsdImage | |
string sourceFileName = dataDir + "OneLayer.psd"; | |
string exportPath = dataDir + "OneLayerEdited.psd"; | |
string exportPathPng = dataDir + "OneLayerEdited.png"; | |
using (var im = (PsdImage)Image.Load(sourceFileName)) | |
{ | |
// Preparing two int arrays | |
var data1 = new int[2500]; | |
var data2 = new int[2500]; | |
var rect1 = new Rectangle(0, 0, 50, 50); | |
var rect2 = new Rectangle(0, 0, 100, 25); | |
for (int i = 0; i < 2500; i++) | |
{ | |
data1[i] = -10000000; | |
data2[i] = -10000000; | |
} | |
var layer1 = im.AddRegularLayer(); | |
layer1.Left = 25; | |
layer1.Top = 25; | |
layer1.Right = 75; | |
layer1.Bottom = 75; | |
layer1.SaveArgb32Pixels(rect1, data1); | |
var layer2 = im.AddRegularLayer(); | |
layer2.Left = 25; | |
layer2.Top = 150; | |
layer2.Right = 125; | |
layer2.Bottom = 175; | |
layer2.SaveArgb32Pixels(rect2, data2); | |
// Save psd | |
im.Save(exportPath, new PsdOptions()); | |
// Save png | |
im.Save(exportPathPng, new PngOptions()); | |
} |
Menambahkan Lapisan Baru dari Berkas Jpeg, Png, Gif, Ai, Tiff, Bmp
Berkas dari format yang didukung apa pun dapat ditambahkan sebagai lapisan baru ke gambar Anda. Tetapi Anda tidak dapat memuatnya secara langsung.
Anda dapat menggunakan kode di bawah ini untuk menambahkan Lapisan PSD baru dari berkas format yang didukung dari aliran
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string outputFilePath = dataDir + "PsdResult.psd"; | |
var filesList = new string[] | |
{ | |
"PsdExample.psd", | |
"BmpExample.bmp", | |
"GifExample.gif", | |
"Jpeg2000Example.jpf", | |
"JpegExample.jpg", | |
"PngExample.png", | |
"TiffExample.tif", | |
}; | |
using (var image = new PsdImage(200, 200)) | |
{ | |
foreach (var fileName in filesList) | |
{ | |
string filePath = dataDir + fileName; | |
using (var stream = new FileStream(filePath, FileMode.Open)) | |
{ | |
Layer layer = null; | |
try | |
{ | |
layer = new Layer(stream); | |
image.AddLayer(layer); | |
} | |
catch (Exception e) | |
{ | |
if (layer != null) | |
{ | |
layer.Dispose(); | |
} | |
throw e; | |
} | |
} | |
} | |
image.Save(outputFilePath); | |
} |
Meratakan semua lapisan atau grup lapisan
Ini bisa berguna jika Anda tidak ingin memberikan berkas PSD yang dapat diedit kepada pengguna Anda. Juga, Anda dapat mengidentifikasi melalui API apakah berkas sudah diratakan.
Meratakan Lapisan dari Berkas PSD:
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Flatten whole PSD | |
string sourceFileName = dataDir + "ThreeRegularLayersSemiTransparent.psd"; | |
string exportPath = dataDir + "ThreeRegularLayersSemiTransparentFlattened.psd"; | |
using (var im = (PsdImage)(Image.Load(sourceFileName))) | |
{ | |
im.FlattenImage(); | |
im.Save(exportPath); | |
} | |
// Merge one layer in another | |
exportPath = dataDir + "ThreeRegularLayersSemiTransparentFlattenedLayerByLayer.psd"; | |
using (var im = (PsdImage)(Image.Load(sourceFileName))) | |
{ | |
var bottomLayer = im.Layers[0]; | |
var middleLayer = im.Layers[1]; | |
var topLayer = im.Layers[2]; | |
var layer1 = im.MergeLayers(bottomLayer, middleLayer); | |
var layer2 = im.MergeLayers(layer1, topLayer); | |
// Set up merged layers | |
im.Layers = new Layer[] { layer2 }; | |
im.Save(exportPath); | |
} |