Write Modify Draw Area Image

The ooodev.format.draw.modify.area.Img class is used to modify the values seen in Fig. 885 of a style.

Setup

from __future__ import annotations
import uno
from ooodev.draw import Draw, DrawDoc, ZoomKind
from ooodev.loader.lo import Lo
from ooodev.format.draw.modify.area import Img as FillImg
from ooodev.format.draw.modify.area import PresetImageKind

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectSocket()):
        doc = DrawDoc(Draw.create_draw_doc())
        doc.set_visible()
        Lo.delay(500)
        doc.zoom(ZoomKind.ZOOM_75_PERCENT)

        slide = doc.get_slide()

        width = 100
        height = 50
        x = 10
        y = 10

        rect = slide.draw_rectangle(x=x, y=y, width=width, height=height)
        rect.set_string("Hello World!")
        style_modify = FillImg.from_preset(preset=PresetImageKind.POOL)
        doc.apply_styles(style_modify)

        Lo.delay(1_000)
        doc.close_doc()
    return 0

if __name__ == "__main__":
    raise SystemExit(main())

Apply image to a style

Before applying Style

Draw dialog Area Image style default

Fig. 885 Draw dialog Area Image style default

Apply style

The image can be loaded from a preset using the PresetImageKind class as a lookup.

# ... other code

style_modify = FillImg.from_preset(preset=PresetImageKind.POOL)
doc.apply_styles(style_modify)

After applying style

Dialog after applying style.

Draw dialog Area Image style changed

Fig. 886 Draw dialog Area Image style changed

Shape after applying style.

Shape after Style applied

Fig. 887 Shape after Style applied

Getting the area image from a style

We can get the area image from the document.

# ... other code

f_style = FillImg.from_style(
    doc=doc.component,
    style_name=style_modify.prop_style_name,
    style_family=style_modify.prop_style_family_name,
)
assert f_style.prop_style_name == style_modify.prop_style_name