Populární aplikace Photoshop od Adobe používá PSD(Photoshop Document) jako nativní formát obrazového souboru. Běžně se používá k vytváření log, brožur a dalších obrázků, kde soubor PSD obsahuje několik vrstev. Návrh můžeme snadno ochránit přidáním textového nebo obrazového vodoznaku do souboru PSD programově. V tomto článku se naučíme, jak přidat vodoznak do PSD v C#.
Tento článek se bude týkat následujících témat:
- C# Photoshop API pro přidání vodoznaku do PSD
- Přidat textový vodoznak do PSD
- Vytvořit diagonální vodoznak v PSD
- Přidat vodoznak obrázku do PSD
C# Photoshop API pro přidání vodoznaku do PSD
Pro přidání textového nebo obrazového vodoznaku do souboru PSD použijeme API Aspose.PSD for .NET. Jedná se o snadno použitelné rozhraní API pro manipulaci s formátem souborů Adobe Photoshop. Umožňuje načítání a čtení souborů PSD a PSB v aplikacích .NET. Rozhraní API nám umožňuje aktualizovat vlastnosti vrstvy, přidávat vodoznaky, provádět kompresi, rotaci, měřítko nebo vykreslování PSD a několik dalších podporované formáty souborů, aniž bychom museli instalovat Adobe Photoshop.
Třída PsdImage API umožňuje načítání, úpravy a ukládání souborů PSD. Třída Graphics představuje grafiku v obrázku. Máme metodu DrawString(string, Font, Brush, RectangleF, StringFormat) této třídy, která kreslí zadaný textový řetězec do zadaného obdélníku se zadanými objekty štětce a písma. Třída Layer představuje vrstvu PSD. Metoda DrawImage(Point, RasterImage) této třídy vykreslí obrázek na vrstvu. PSD můžeme uložit do zadaného umístění souboru pomocí metody Save(string, ImageOptionsBase).
Prosím buď stáhněte si DLL API, nebo jej nainstalujte pomocí NuGet.
PM> Install-Package Aspose.PSD
Přidejte textový vodoznak do PSD pomocí C#
Do souboru PSD můžeme přidat libovolný text jako vodoznak podle následujících kroků:
- Nejprve načtěte soubor PSD jako PsdImage pomocí třídy Image.
- Dále vytvořte instanci třídy Graphics.
- Poté definujte objekt třídy Font pro nakreslení šířky vodoznaku.
- Dále vytvořte instanci třídy SolidBrush s barvou.
- Poté zadejte zarovnání řetězců.
- Poté zavolejte metodu DrawString().
- Nakonec uložte výstupní soubor pomocí metody Save().
Následující ukázka kódu ukazuje, jak přidat textový vodoznak do souboru PSD v C#.
// Tento příklad kódu ukazuje, jak přidat textový vodoznak do souboru PSD
// Načtěte soubor PSD jako obrázek a přeneste jej do PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Vytvořte grafický objekt pro provádění operací kreslení.
Graphics graphics = new Graphics(psdImage);
// Vytvořte písmo pro kreslení vodoznaku.
Font font = new Font("Arial", 25.0f);
// Chcete-li použít efekt vodoznaku, vytvořte pevný štětec s barvou alfa nastavenou blízkou 0.
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Chcete-li umístit vodoznak do středu obrázku, zadejte zarovnání řetězce.
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
// Nakreslete vodoznak pomocí písma, částečně průhledného štětce a rotační matice ve středu obrázku.
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf);
// Exportujte obrázek do formátu souboru PNG.
psdImage.Save(@"C:\Files\AddWatermark_output.png", new PngOptions());
Výstup můžeme také uložit jako soubor PSD pomocí následující ukázky kódu:
psdImage.Save(@"C:\Files\AddWatermark_output.psd", new PsdOptions());
Vytvořte diagonální vodoznak v PSD pomocí C#
Do souboru PSD můžeme přidat diagonální textový vodoznak podle následujících kroků:
- Nejprve načtěte soubor PSD jako PsdImage pomocí třídy Image.
- Dále vytvořte instanci třídy Graphics.
- Poté definujte objekt třídy Font pro nakreslení šířky vodoznaku.
- Mezitím vytvořte instanci třídy SolidBrush s barvou.
- Poté zadejte transformační matici pro otočení vodoznaku.
- Později zadejte zarovnání řetězců.
- Poté zavolejte metodu DrawString().
- Nakonec uložte výstupní soubor pomocí metody Save().
Následující ukázka kódu ukazuje, jak přidat diagonální textový vodoznak do souboru PSD v C#.
// Tento příklad kódu ukazuje, jak přidat diagonální textový vodoznak do souboru PSD
// Načtěte soubor PSD jako obrázek a přeneste jej do PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Vytvořte grafický objekt pro provádění operací kreslení
Graphics graphics = new Graphics(psdImage);
// Vytvořte písmo pro kreslení vodoznaku
Font font = new Font("Arial", 25.0f);
// Chcete-li použít efekt vodoznaku, vytvořte pevný štětec s barvou alfa nastavenou blízkou 0
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Chcete-li vodoznak otočit, zadejte transformační matici
graphics.Transform = new Matrix();
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2));
// Chcete-li umístit vodoznak do středu obrázku, zadejte zarovnání řetězce
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
// Nakreslete vodoznak pomocí písma, částečně průhledného štětce ve středu obrázku
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf);
// Exportujte obrázek do formátu souboru PNG
psdImage.Save(@"C:\Files\AddDiagnolWatermark_output.png", new PngOptions());
Přidat vodoznak obrázku do PSD pomocí C#
Můžeme také přidat obrázek jako vodoznak do souboru PSD podle následujících kroků:
- Nejprve načtěte soubor PSD jako PsdImage pomocí třídy Image.
- Dále vytvořte instanci třídy Layer.
- Poté nastavte výšku, šířku a neprůhlednost vrstvy.
- Dále zavolejte metodu AddLayer() a přidejte vrstvu do PSD.
- Poté načtěte obrázek vodoznaku do vrstvy.
- Poté do vrstvy přidejte vodoznak obrázku.
- Poté zavolejte metodu DrawImage(). Jako argumenty bere umístění a vrstvu obrázku vodoznaku.
- Nakonec uložte výstupní soubor pomocí metody Save().
Následující ukázka kódu ukazuje, jak přidat vodoznak obrázku do souboru PSD v C#.
// Tato ukázka kódu ukazuje, jak přidat vodoznak obrázku do souboru PSD
// Načtěte soubor PSD do objektu PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Přidejte novou vrstvu vodoznaku
var baseLayer = new Layer();
baseLayer.Top = 200;
baseLayer.Bottom = 600;
baseLayer.Right = 600;
baseLayer.Opacity = 50;
// Přidejte vrstvu do souboru PSD
psdImage.AddLayer(baseLayer);
// Načtěte obrázek vodoznaku do vrstvy
FileStream ImageWatermarkFile = new FileStream(@"C:\Files\aspose_logo.png", FileMode.Open);
Layer ImageWatermarkLayer = new Layer(ImageWatermarkFile);
// Přidejte vodoznak obrázku do základní vrstvy
baseLayer.DrawImage(new Point(0, 200), ImageWatermarkLayer);
// Uložte konečný vodoznak PSD soubor
psdImage.Save(@"C:\Files\ImageWatermarkedPSD.png", new PngOptions());
Získejte bezplatnou dočasnou licenci
Můžete získat bezplatnou dočasnou licenci a vyzkoušet Aspose.PSD pro .NET bez omezení hodnocení.
Závěr
V tomto článku jsme se naučili, jak:
- přidat novou vrstvu do obrázku PSD;
- přidat text nebo obrázek vodoznaku na PSD;
- uložit PSD jako obrázek PNG nebo PSD pomocí C#.
Kromě přidání vodoznaku do PSD v C# se můžete dozvědět více o Aspose.PSD pro .NET pomocí dokumentace a prozkoumat různé funkce podporované rozhraním API. V případě jakýchkoli nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.