Přidání vodoznaku do obrázku
Přidání vodoznaku do obrázku
Tento dokument vysvětluje, jak přidat vodoznak do obrázku pomocí Aspose.PSD. Přidání vodoznaku do obrázku je běžným požadavkem pro aplikace zpracování obrazu. Tento příklad používá třídu Graphics k nakreslení řetězce na povrch obrázku.
Přidání vodoznaku
Pro demonstraci operace načteme obrázek BMP z disku a nakreslíme řetězec jako vodoznak na povrch obrázku pomocí metody DrawString třídy Graphics. Obrázek uložíme do formátu PNG pomocí třídy PngOptions. Níže je ukázkový kód, který demonstruje, jak přidat vodoznak do obrázku. Ukázkový zdrojový kód byl rozdělen na části, aby bylo snadné jej sledovat. Postupně ukázky ukazují, jak:
- Načíst obrázek.
- Vytvořit a inicializovat objekt Graphics.
- Vytvořit a inicializovat objekty Font a SolidBrush.
- Nakreslit řetězec jako vodoznak pomocí metody DrawString třídy Graphics.
- Uložit obrázek do PNG.
Následující ukázkový kód vám ukazuje, jak přidat vodoznak do obrázku.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Load a PSD file as an image and cast it into PsdImage | |
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd")) | |
{ | |
// Create graphics object to perform draw operations. | |
Graphics graphics = new Graphics(psdImage); | |
// Create font to draw watermark with. | |
Font font = new Font("Arial", 20.0f); | |
// Create a solid brush with color alpha set near to 0 to use watermarking effect. | |
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128))) | |
{ | |
// Specify string alignment to put watermark at the image center. | |
StringFormat sf = new StringFormat(); | |
sf.Alignment = StringAlignment.Center; | |
sf.LineAlignment = StringAlignment.Center; | |
// Draw watermark using font, partly-transparent brush and rotation matrix at the image center. | |
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf); | |
} | |
// Export the image into PNG file format. | |
psdImage.Save(dataDir + "AddWatermark_output.png", new PngOptions()); | |
} |
Přidání diagonálního vodoznaku
Přidání diagonálního vodoznaku do obrázku je podobné přidání vodorovného vodoznaku, jak bylo diskutováno výše, s několika rozdíly. Pro demonstraci operace načteme obrázek JPG z disku, přidáme transformace pomocí objektu třídy Matrix a nakreslíme řetězec jako vodoznak na povrch obrázku pomocí metody DrawString třídy Graphics. Níže je ukázkový kód, který demonstruje, jak přidat diagonální vodoznak do obrázku. Ukázkový zdrojový kód byl rozdělen na části, aby bylo snadné jej sledovat. Postupně ukázky ukazují, jak:
- Načíst obrázek.
- Vytvořit a inicializovat objekt Graphics.
- Vytvořit a inicializovat objekty Font a SolidBrush.
- Získat velikost obrázku ve SizeF.
- Vytvořit instanci třídy Matrix a provést složenou transformaci.
- Přiřadit transformaci objektu Graphics.
- Vytvořit a inicializovat objekt StringFormat.
- Nakreslit řetězec jako vodoznak pomocí metody DrawString třídy Graphics.
- Uložit výsledný obrázek.
Následující ukázkový kód vám ukazuje, jak přidat diagonální vodoznak.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Load a PSD file as an image and cast it into PsdImage | |
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd")) | |
{ | |
// Create graphics object to perform draw operations. | |
Graphics graphics = new Graphics(psdImage); | |
// Create font to draw watermark with. | |
Font font = new Font("Arial", 20.0f); | |
// Create a solid brush with color alpha set near to 0 to use watermarking effect. | |
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128))) | |
{ | |
// specify transform matrix to rotate watermark. | |
graphics.Transform = new Matrix(); | |
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2)); | |
// Specify string alignment to put watermark at the image center. | |
StringFormat sf = new StringFormat(); | |
sf.Alignment = StringAlignment.Center; | |
// Draw watermark using font, partly-transparent brush at the image center. | |
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf); | |
} | |
// Export the image into PNG file format. | |
psdImage.Save(dataDir + "AddDiagnolWatermark_output.png", new PngOptions()); | |
} |