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:

todo:image_alt_text

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);
}