ใน โพสต์ก่อนหน้า เราได้พูดถึงวิธีการแยกรูปภาพจากเอกสารใน Java วันนี้เราจะพยายามบรรลุวัตถุประสงค์เดียวกันโดยใช้ C# ไม่ต้องกังวลหากคุณไม่ได้เยี่ยมชมโพสต์ที่แล้ว ในบทความนี้ เราจะเรียนรู้วิธีการแยกรูปภาพโดยใช้โปรแกรมจากเอกสาร PDF, Excel, PowerPoint และ Word ในแอปพลิเคชัน C# โดยใช้การแยกวิเคราะห์เอกสาร .NET API

แยกรูปภาพออกจากเอกสารใน .NET

หัวข้อต่อไปนี้จะครอบคลุมที่นี่:

รูปภาพ ข้อความ และการแยกข้อมูลเมตา .NET API

แยกวิเคราะห์เอกสารและแยกข้อมูลใน .NET

GroupDocs.Parser for .NET คือการแยกวิเคราะห์เอกสารและการดึงข้อมูล .NET API รองรับการแยกวิเคราะห์เอกสารและแยกรูปภาพ ข้อความ และข้อมูลเมตาจากเอกสารประมวลผลคำ สเปรดชีต งานนำเสนอ เอกสารสำคัญ และเอกสารอีเมล ในตอนท้ายของบทความ [กล่าวถึง] รูปแบบเอกสารได้รับการรองรับโดย API สำหรับการดึงรูปภาพ

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

แยกรูปภาพจากเอกสาร PDF ใน C#

เอกสาร PDF เพื่อแยกรูปภาพ

คุณสามารถดึงภาพทั้งหมดจากเอกสาร PDF ได้อย่างง่ายดายโดยทำตามขั้นตอนง่ายๆ เหล่านี้

  1. สร้างอินสแตนซ์ของวัตถุคลาส Parser ด้วยเอกสารต้นฉบับ
  2. เรียกใช้เมธอด GetImages ของคลาส Parser เพื่อรับคอลเลกชันของรูปภาพทั้งหมดในออบเจ็กต์ PageImageArea
  3. วนซ้ำ PageImageArea เพื่อให้ได้ทุกภาพ
  4. บันทึกภาพลงในดิสก์โดยใช้เมธอด Save ของ PageImageArea

รูปภาพที่แยกออกมาสามารถบันทึกในรูปแบบ BMP, GIF, JPEG, PNG และ WebP รหัสที่สมบูรณ์แสดงอยู่ด้านล่างเพื่อสาธิตขั้นตอนทั้งหมด

// แยกรูปภาพจาก Word, Excel, PPT, PDF ใน C# โดยใช้ GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // วนซ้ำภาพที่ดึงมา
    foreach (PageImageArea image in images)
    {
        // บันทึกรูปภาพและพิมพ์ดัชนีหน้า สี่เหลี่ยมผืนผ้า และประเภทรูปภาพ:
        Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
        imageNumber++;
    }
}
แยกรูปภาพออกจากเอกสารโดยใช้ GroupDocs.Parser

แยกรูปภาพจากไฟล์ Word, Excel, PowerPoint ใน C#

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

using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document

การดึงรูปภาพจากหน้าเอกสารเฉพาะใน C#

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

  • รับข้อมูลเกี่ยวกับเอกสารโดยใช้เมธอด GetDocumentInfo
  • จากข้อมูลเอกสาร ให้นำ PageCount และข้อมูลอื่นๆ ทั้งหมดออก
  • ใช้เมธอด GetImages(pageIndex) และส่งดัชนีหน้าเป้าหมายของคุณไปให้
  • ในการบันทึกภาพที่ดึงมา ให้สำรวจคอลเลกชันรูปภาพ และบันทึกภาพแต่ละภาพโดยใช้เมธอด Save
// แยกรูปภาพจากหน้าเฉพาะของ Word, Excel, PowerPoint, PDF ใน C# โดยใช้ GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // รับข้อมูลเอกสาร
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // ทำซ้ำผ่านหน้า
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // พิมพ์หมายเลขหน้า 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // ทำซ้ำภาพ ละเว้นการตรวจสอบค่าว่างในตัวอย่าง
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // พิมพ์สี่เหลี่ยมผืนผ้าและประเภทรูปภาพ
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

รูปแบบที่รองรับสำหรับการสกัดรูปภาพใน C#

ต่อไปนี้เป็นรูปแบบเอกสารที่ได้รับการสนับสนุนโดย GroupDocs.Parser for .NET API สำหรับการแยกอิมเมจ

ประเภทเอกสาร รูปแบบไฟล์
เอกสารประมวลผลคำ DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
สเปรดชีต XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, ตัวเลข
งานนำเสนอ PPT, PPTX, PPTM, PPS, PPSX, PPSM, หม้อ, POTX, POTM, ODP, OTP
เอกสารพกพา PDF
อีเมล EML, EMLX, ผงชูรส
หอจดหมายเหตุ รหัสไปรษณีย์

เพิ่มเติมเกี่ยวกับ GroupDocs.Parser

มาคุยกันต่อ @ ฟอรัมสนับสนุนฟรี

บทความที่เกี่ยวข้อง