การทำงานกับรูปภาพ

Aspose.Words ช่วยให้ผู้ใช้สามารถทำงานกับรูปภาพได้อย่างยืดหยุ่น ในบทความนี้ คุณสามารถสำรวจความเป็นไปได้บางประการในการทำงานกับรูปภาพเท่านั้น

วิธีแทรกรูปภาพ

DocumentBuilder มีเมธอด InsertImage มากมายที่ให้คุณแทรกรูปภาพแบบอินไลน์หรือแบบลอยได้ หากรูปภาพเป็นเมตาไฟล์ EMF หรือ WMF รูปภาพนั้นจะถูกแทรกลงในเอกสารในรูปแบบเมตาไฟล์ รูปภาพอื่นๆ ทั้งหมดจะถูกจัดเก็บในรูปแบบ PNG วิธี InsertImage สามารถใช้รูปภาพจากแหล่งต่างๆ ได้:

  • จากไฟล์หรือ URL โดยส่งพารามิเตอร์ String InsertImage
  • จากสตรีมโดยส่งพารามิเตอร์ Stream InsertImage
  • จากวัตถุรูปภาพโดยส่งพารามิเตอร์รูปภาพ InsertImage
  • จากอาร์เรย์ไบต์โดยส่งพารามิเตอร์อาร์เรย์ไบต์ InsertImage

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

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

วิธีแทรกรูปภาพอินไลน์

ส่งสตริงเดียวที่แสดงไฟล์ที่มีรูปภาพไปที่ InsertImage เพื่อแทรกรูปภาพลงในเอกสารเป็นกราฟิกอินไลน์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกรูปภาพอินไลน์ที่ตำแหน่งเคอร์เซอร์ลงในเอกสาร:

วิธีแทรกรูปภาพลอย

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกรูปภาพแบบลอยจากไฟล์หรือ URL ในตำแหน่งและขนาดที่ระบุ:

วิธีแยกรูปภาพจากเอกสาร

รูปภาพทั้งหมดจะถูกจัดเก็บไว้ในโหนด Shape ในรูปแบบ Document หากต้องการแยกรูปภาพทั้งหมดหรือรูปภาพที่มีประเภทเฉพาะออกจากเอกสาร ให้ทำตามขั้นตอนเหล่านี้:

  • ใช้วิธี GetChildNodes เพื่อเลือกโหนด Shape ทั้งหมด
  • วนซ้ำผ่านการรวบรวมโหนดที่เกิดขึ้น
  • ตรวจสอบคุณสมบัติบูลีน HasImage
  • แยกข้อมูลภาพโดยใช้คุณสมบัติ ImageData
  • บันทึกข้อมูลภาพเป็นไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกรูปภาพจากเอกสารและบันทึกเป็นไฟล์:

วิธีแทรกบาร์โค้ดในแต่ละหน้าเอกสาร

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกรูปภาพบาร์โค้ดในแต่ละหน้าของเอกสาร:

ล็อคอัตราส่วนภาพของภาพ

อัตราส่วนภาพของรูปทรงเรขาคณิตคืออัตราส่วนของขนาดในมิติต่างๆ คุณสามารถล็อคอัตราส่วนภาพของภาพโดยใช้ AspectRatioLocked ค่าเริ่มต้นของอัตราส่วนภาพของรูปร่างจะขึ้นอยู่กับ ShapeType เป็น true สำหรับ ShapeType.Image และ false สำหรับรูปร่างประเภทอื่นๆ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการทำงานกับอัตราส่วนภาพ:

วิธีรับขอบเขตของรูปร่างตามจริงเป็นคะแนน

หากคุณต้องการให้กล่องขอบเขตจริงของรูปร่างตามที่แสดงผลบนเพจ คุณสามารถทำได้โดยใช้คุณสมบัติ BoundsInPoints

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการใช้คุณสมบัตินี้:

ครอบตัดรูปภาพ

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการบรรลุเป้าหมายนี้โดยใช้ Aspose.Words API:

บันทึกรูปภาพเป็น WMF

Aspose.Words มีฟังก์ชันในการบันทึกรูปภาพที่มีอยู่ในเอกสารเป็นรูปแบบ WMF ในขณะที่แปลง DOCX เป็น RTF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการบันทึกรูปภาพเป็น WMF ด้วยตัวเลือกการบันทึก RTF: