Werk Met Beelde

Aspose.Words laat gebruikers toe om op’n baie buigsame manier met beelde te werk. In hierdie artikel kan jy slegs sommige van die moontlikhede van werk met beelde verken.

Voeg’n Prent in

DocumentBuilder bied verskeie oorladings van die die insert_image metode wat jou toelaat om’n inlyn of drywende beeld in te voeg. As die beeld’n EMF of WMF metafile is, sal dit in die dokument in metafile-formaat ingevoeg word. Alle ander beelde sal in PNG formaat gestoor word. Die insert_image metode kan beelde van verskillende bronne gebruik:

  • Van’n lêer of URL deur’n string parameter
  • Van’n stroom deur’n Stream parameter te slaag
  • Van’n byte skikking deur’n byte skikking parameter

Vir elk van die insert_image metodes, is daar verdere oorladings wat jou toelaat om’n beeld met die volgende opsies in te voeg:

  • Inlyn of swaai op’n spesifieke posisie, byvoorbeeld, insert_image
  • Persentasieskaal of pasgemaakte grootte; verder gee die DocumentBuilder.insert_image - metode’n Shape - voorwerp terug wat pas geskep en ingevoeg is, sodat u die eienskappe van die Shapeverder kan verander

Voeg’n Inlynbeeld in

Gee’n enkele string wat’n lêer verteenwoordig wat die beeld bevat na insert_image om die beeld in die dokument as’n inlyngrafiek in te voeg.

Die volgende kode voorbeeld toon hoe om’n inline beeld by die wyser posisie in’n dokument in te voeg:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.insert_image(docs_base.images_dir + "Logo.jpg")

doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_inline_image.doc")

Voeg’n Drywende (Absoluut Geposisioneer) Beeld in

Die volgende kode voorbeeld toon hoe om’n drywende beeld van’n lêer of URL in’n gespesifiseerde posisie en grootte in te voeg:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.insert_image(docs_base.images_dir + "Logo.jpg",
    aw.drawing.RelativeHorizontalPosition.MARGIN,
    100,
    aw.drawing.RelativeVerticalPosition.MARGIN,
    100,
    200,
    100,
    aw.drawing.WrapType.SQUARE)

doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_floating_image.doc")

Hoe Om Foto’s Uit’n Dokument Te Neem

Alle beelde word gestoor binne Shape nodes in a Document. Volg hierdie stappe om alle beelde of beelde met spesifieke tipe uit die dokument te onttrek:

Die volgende kode voorbeeld toon hoe om beelde uit’n dokument te onttrek en stoor hulle as lêers:

Jy kan die sjabloon lêer van hierdie voorbeeld aflaai van hier is.

Hoe Om Strepieskode Op elke Bladsy Van’n Dokument In Te Voeg

Hierdie voorbeeld toon dat jy dieselfde of verskillende strepieskode op alle of spesifieke bladsye van’n Word-dokument moet byvoeg. Daar is geen direkte manier om strepieskode op alle bladsye van’n dokument by te voeg nie, maar jy kan die move_to_section, move_to_header_footer en insert_image metodes gebruik om na enige afdeling of koptekste/voetskrifte te beweeg en die strepieskode-beelde in te voeg soos jy in die volgende kode kan sien.

Die volgende kode voorbeeld Voeg’n barcode beeld op elke bladsy van’n dokument.

Sluit Aspekverhouding Van Beeld

Die aspekverhouding van’n meetkundige vorm is die verhouding van sy groottes in verskillende dimensies. U kan die beeldverhouding met aspect_ratio_locked sluit. Die standaard waarde van die vorm se aspek verhouding hang af van die ShapeType. Dit is True vir ShapeType.IMAGE en False vir ander vorm tipes.

Die volgende kode voorbeeld toon hoe om te werk met aspek verhouding:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False

doc.save(docs_base.artifacts_dir+"WorkingWithImages.set_aspect_ratio_locked.doc")

Hoe Om Werklike Grense Van Vorm In Punte Te Kry

As jy die werklike grens boks van die vorm wil hê soos op die bladsy weergegee, kan jy dit bereik deur die bounds_in_points eienskap te gebruik.

Die volgende kode voorbeeld toon hoe om hierdie eiendom te gebruik:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False

print("\nGets the actual bounds of the shape in points.")
rect = shape.get_shape_renderer().bounds_in_points
print(f"{rect.x}, {rect.y}, {rect.width}, {rect.height}")

Sny Beelde

Die sny van’n beeld verwys gewoonlik na die verwydering van die ongewenste buitenste dele van’n beeld om die raamwerk te verbeter. Dit word ook gebruik vir die verwydering van sommige van die dele van’n beeld om die fokus op’n spesifieke gebied te verhoog.

Die volgende kode voorbeeld toon hoe om dit te bereik met behulp van Aspose.Words API:

# The path to the documents directory.
inputPath = docs_base.images_dir + "Logo.jpg"
outputPath = docs_base.artifacts_dir + "cropped_logo.jpg"

self.crop_image(inputPath,outputPath, 100, 90, 200, 200)
@staticmethod
def crop_image(inPath : str, outPath : str, left : int, top : int, width : int, height : int) :
    
    doc = aw.Document();
    builder = aw.DocumentBuilder(doc)
    
    croppedImage = builder.insert_image(inPath)
    
    src_width_points = croppedImage.width
    src_height_points = croppedImage.height
    
    croppedImage.width = aw.ConvertUtil.pixel_to_point(width)
    croppedImage.height = aw.ConvertUtil.pixel_to_point(height)
    
    widthRatio = croppedImage.width / src_width_points
    heightRatio = croppedImage.height / src_height_points
    
    if (widthRatio< 1) :
        croppedImage.image_data.crop_right = 1 - widthRatio
    
    if (heightRatio< 1) :
        croppedImage.image_data.crop_bottom = 1 - heightRatio
    
    leftToWidth = aw.ConvertUtil.pixel_to_point(left) / src_width_points
    topToHeight = aw.ConvertUtil.pixel_to_point(top) / src_height_points
    
    croppedImage.image_data.crop_left = leftToWidth
    croppedImage.image_data.crop_right = croppedImage.image_data.crop_right - leftToWidth
    
    croppedImage.image_data.crop_top = topToHeight
    croppedImage.image_data.crop_bottom = croppedImage.image_data.crop_bottom - topToHeight
    
    croppedImage.get_shape_renderer().save(outPath, aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG))

Stoor Beelde as WMF

Aspose.Words bied funksionaliteit om al die beskikbare beelde in’n dokument te stoor WMF formaat terwyl die omskakeling van DOCX na RTF.

Die volgende kode voorbeeld toon hoe om beelde te stoor as WMF met RTF stoor opsies: