Crop Images C#

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

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

ทำไมต้องตัดภาพโปรแกรมmatically ใน C#?

มีหลายสถานการณ์ที่การตัดภาพโดยใช้โปรแกรมเป็นประโยชน์:

  • มุ่งเน้นที่เนื้อหา: การครอบตัดช่วยให้คุณเน้นส่วนเฉพาะของภาพ ทำให้เหมาะสำหรับรูปโปรไฟล์, รูปขนาดย่อ, หรือการสแกนเอกสาร.

  • การประมวลผลภาพอัตโนมัติ: ในแอปพลิเคชันที่เกี่ยวข้องกับการแก้ไขภาพจำนวนมากหรือเนื้อหาที่ผู้ใช้อัปโหลด การทำให้กระบวนการตัดภาพเป็นอัตโนมัติช่วยให้การทำงานมีประสิทธิภาพมากขึ้นและกำจัดความพยายามด้วยมือ

  • Compliance and Privacy: การครอปสามารถใช้เพื่อลบข้อมูลที่ละเอียดอ่อนหรือไม่เกี่ยวข้องก่อนที่จะแบ่งปันภาพ

การตัดกรอบไม่ใช่แค่การปรับปรุงด้านความสวยงาม แต่เป็นส่วนสำคัญของการประมวลผลข้อมูล การออกแบบ UX และประสิทธิภาพของระบบ

ครอปภาพ JPG PNG BMP - การกำหนดค่าของ API .NET

คุณสามารถติดตั้ง Conholdate.Total for .NET ได้อย่างง่ายดายด้วยคำสั่งติดตั้ง NuGet ด้านล่าง:

Install-Package Conholdate.Total

ครอปภาพโดยการเลื่อนด้านใน C#

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

// Load the image to be cropped.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Define shift values for all four sides.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Based on the shift values, apply the cropping on image. Crop method will shift the image bounds toward the center of image.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

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

ตัดภาพด้วยสี่เหลี่ยมที่กำหนดใน C#

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

// Load the image.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Create an instance of Rectangle class with desired size and crop the image.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);
    rasterImage.Crop(rectangle);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

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

ใบอนุญาตประเมินฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อประเมินคุณสมบัติอื่นๆ ที่มีให้โดย API อย่างเต็มประสิทธิภาพค่ะ

ข้อสรุป

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

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

ดูเพิ่มเติม