เพิ่มลายน้ำให้กับภาพ C#

ลายน้ำในรูปภาพมักใช้เพื่ออ้างสิทธิ์ความเป็นเจ้าของเนื้อหา ในทางกลับกัน รูปภาพจะถูกใส่ลายน้ำเพื่อหลีกเลี่ยงการใช้งานโดยไม่ได้รับอนุญาตหรือการปลอมแปลง ในหลายกรณี คุณอาจต้องทำให้คุณลักษณะการใส่ลายน้ำเป็นแบบอัตโนมัติภายในเว็บหรือแอปพลิเคชันเดสก์ท็อปของคุณ สำหรับสถานการณ์ดังกล่าว บทความนี้ครอบคลุมถึงวิธีการเพิ่มลายน้ำให้กับรูปภาพโดยใช้โปรแกรมโดยใช้ C# สิ่งนี้ยังมีประโยชน์เมื่อคุณต้องการลายน้ำของรูปภาพเป็นชุดในคราวเดียว มาเริ่มกันเลย

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#

เพิ่มลายน้ำในแนวทแยงให้กับรูปภาพใน 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");
}
เพิ่มลายน้ำแนวทแยงให้กับรูปภาพ C#

รับใบอนุญาต API ฟรี

ในกรณีที่คุณต้องการลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน คุณสามารถ รับใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีเพิ่มลายน้ำให้กับรูปภาพโดยใช้ C# นอกจากนี้ คุณได้เห็นวิธีแปลงข้อความลายน้ำเป็นมุมเฉพาะ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การประมวลผลภาพ C# โดยใช้ เอกสารประกอบ ในกรณีที่คุณมีคำถามหรือข้อสงสัย โปรดติดต่อเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย