ลายน้ำในรูปภาพมักใช้เพื่ออ้างสิทธิ์ความเป็นเจ้าของเนื้อหา ในทางกลับกัน รูปภาพจะถูกใส่ลายน้ำเพื่อหลีกเลี่ยงการใช้งานโดยไม่ได้รับอนุญาตหรือการปลอมแปลง ในหลายกรณี คุณอาจต้องทำให้คุณลักษณะการใส่ลายน้ำเป็นแบบอัตโนมัติภายในเว็บหรือแอปพลิเคชันเดสก์ท็อปของคุณ สำหรับสถานการณ์ดังกล่าว บทความนี้ครอบคลุมถึงวิธีการเพิ่มลายน้ำให้กับรูปภาพโดยใช้โปรแกรมโดยใช้ C# สิ่งนี้ยังมีประโยชน์เมื่อคุณต้องการลายน้ำของรูปภาพเป็นชุดในคราวเดียว มาเริ่มกันเลย
- C # API เพื่อเพิ่มลายน้ำให้กับรูปภาพ
- เพิ่มลายน้ำให้กับรูปภาพใน C#
- เพิ่มลายน้ำในแนวทแยงให้กับรูปภาพใน C #
- รับใบอนุญาต API ฟรี
C # API เพื่อเพิ่มลายน้ำให้กับรูปภาพ
ในการเพิ่มลายน้ำให้กับรูปภาพ เราจะใช้ Aspose.Imaging for .NET เป็น API การประมวลผลภาพที่ทรงพลังซึ่งรองรับรูปแบบภาพที่หลากหลาย นอกจากนี้ API ยังช่วยให้คุณจัดการรูปภาพได้ง่ายขึ้น คุณสามารถ ดาวน์โหลด ไบนารีของ API หรือติดตั้งโดยใช้ NuGet
PM> Install-Package Aspose.Imaging
เพิ่มลายน้ำให้กับรูปภาพใน C#
ต่อไปนี้เป็นขั้นตอนในการเพิ่มลายน้ำให้กับรูปภาพโดยใช้ C#
- โหลดภาพโดยใช้คลาส Image
- สร้างอินสแตนซ์ของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
- ตั้งค่าตระกูลฟอนต์ ขนาด และหน้าตาโดยใช้คลาส Font
- สร้างอินสแตนซ์ของคลาส SolidBrush และตั้งค่าคุณสมบัติ เช่น สี เป็นต้น
- สร้างอินสแตนซ์คลาส StringFormat เพื่อตั้งค่าการจัดตำแหน่งข้อความ
- เพิ่มลายน้ำให้กับรูปภาพโดยใช้เมธอด Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat)
- บันทึกภาพโดยใช้เมธอด Image.Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเพิ่มลายน้ำให้กับรูปภาพใน C#
// โหลดภาพ PNG ที่มีอยู่
using (Image image = Image.Load("image.png"))
{
// ประกาศวัตถุสตริงด้วยข้อความลายน้ำ
string theString = "This is watermark";
// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิกและเริ่มต้นวัตถุของ SizeF เพื่อจัดเก็บขนาดรูปภาพ
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// สร้างอินสแตนซ์ของฟอนต์ เริ่มต้นด้วย Font Face ขนาด และสไตล์
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// สร้างอินสแตนซ์ของ SolidBrush และตั้งค่าคุณสมบัติต่างๆ
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// เริ่มต้นวัตถุของคลาส StringFormat และตั้งค่าคุณสมบัติต่างๆ
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// วาดสตริงบนอิมเมจบันทึกเอาต์พุตไปยังดิสก์
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
เพิ่มลายน้ำในแนวทแยงให้กับรูปภาพใน C
ในหลายกรณี ลายน้ำจะถูกนำไปใช้กับรูปภาพในแนวทแยงมุม สำหรับสิ่งนี้ Aspose.Imaging for .NET ช่วยให้คุณสามารถแปลงข้อความลายน้ำในมุมที่กำหนดได้ ต่อไปนี้เป็นขั้นตอนในการเพิ่มลายน้ำในแนวทแยงให้กับรูปภาพ
- โหลดภาพโดยใช้คลาส Image
- สร้างอินสแตนซ์ของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
- ตั้งค่าตระกูลฟอนต์ ขนาด และหน้าตาโดยใช้คลาส Font
- สร้างอินสแตนซ์ของคลาส SolidBrush และตั้งค่าคุณสมบัติ เช่น สี เป็นต้น
- สร้างอินสแตนซ์คลาส StringFormat เพื่อตั้งค่าการจัดตำแหน่งข้อความ
- สร้างอินสแตนซ์ของคลาส Matrix และตั้งค่ามุมการแปลง
- กำหนดวัตถุเมทริกซ์ให้กับคุณสมบัติ Graphics.Transform
- เพิ่มลายน้ำโดยใช้เมธอด Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat)
- บันทึกภาพโดยใช้เมธอด Image.Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มลายน้ำแนวทแยงให้กับรูปภาพโดยใช้ C#
// โหลดภาพ PNG ที่มีอยู่
using (Image image = Image.Load("Image.png"))
{
// ประกาศวัตถุสตริงด้วยข้อความลายน้ำ
string theString = "45 Degree Rotated Text";
// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิกและเริ่มต้นวัตถุของ SizeF เพื่อจัดเก็บขนาดภาพ
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// สร้างอินสแตนซ์ของฟอนต์ เริ่มต้นด้วย Font Face ขนาด และสไตล์
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// สร้างอินสแตนซ์ของ SolidBrush และตั้งค่าคุณสมบัติต่างๆ
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// เริ่มต้นวัตถุของคลาส StringFormat และตั้งค่าคุณสมบัติต่างๆ
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// สร้างวัตถุของคลาสเมทริกซ์สำหรับการแปลง
Matrix matrix = new Matrix();
// ขั้นแรกให้แปลแล้วหมุน
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// ตั้งค่าการแปลงผ่านเมทริกซ์
graphics.Transform = matrix;
// วาดสตริงบนอิมเมจบันทึกเอาต์พุตไปยังดิสก์
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
รับใบอนุญาต API ฟรี
ในกรณีที่คุณต้องการลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน คุณสามารถ รับใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีเพิ่มลายน้ำให้กับรูปภาพโดยใช้ C# นอกจากนี้ คุณได้เห็นวิธีแปลงข้อความลายน้ำเป็นมุมเฉพาะ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การประมวลผลภาพ C# โดยใช้ เอกสารประกอบ ในกรณีที่คุณมีคำถามหรือข้อสงสัย โปรดติดต่อเราผ่านทาง ฟอรัม