Image
An image is a graphic representation of something (e.g photo or illustration).
Examples
- Python
import flet as ft
def main(page: ft.Page):
page.title = "Images Example"
page.theme_mode = ft.ThemeMode.LIGHT
page.padding = 50
page.update()
img = ft.Image(
src=f"/icons/icon-512.png",
width=100,
height=100,
fit=ft.ImageFit.CONTAIN,
)
images = ft.Row(expand=1, wrap=False, scroll="always")
page.add(img, images)
for i in range(0, 30):
images.controls.append(
ft.Image(
src=f"https://picsum.photos/200/200?{i}",
width=200,
height=200,
fit=ft.ImageFit.NONE,
repeat=ft.ImageRepeat.NO_REPEAT,
border_radius=ft.border_radius.all(10),
)
)
page.update()
ft.app(target=main)
Properties
border_radius
Clip image to have rounded corners. See Container.border_radius
for more information and examples.
color
If set, this color is blended with each image pixel using color_blend_mode
.
color_blend_mode
Used to combine color
with the image.
The default is BlendMode.COLOR
. In terms of the blend mode, color is the source and this image is the destination.
See ShaderMask.blend_mode
for possible blend mode values.
error_content
Fallback Control
to display if the image cannot be loaded from the source.
exclude_from_semantics
Whether to exclude this image from semantics. Defaults to False
.
filter_quality
The rendering quality of the image. Value is of type FilterQuality
enum and can be one of the
following: NONE
, LOW
(default), MEDIUM
or HIGH
. More details on
each here.
When building for the web using the html
WebRenderer, filter quality has no effect - all images are rendered using the respective browser's default setting.
fit
How to inscribe the image into the space allocated during layout.
Property value is ImageFit
enum with supported values: NONE
(default), CONTAIN
, COVER
, FILL
, FIT_HEIGHT
, FIT_WIDTH
, SCALE_DOWN
.
gapless_playback
Whether to continue showing the old image (True
), or briefly show nothing (False
), when the image provider changes. The default value is False
.
height
If set, require the image to have this height.
If not set, the image will pick a size that best preserves its intrinsic aspect ratio.
It is strongly recommended that either both the width and the height be specified, or that the Image be placed in a context that sets tight layout constraints, so that the image does not change size as it loads. Consider using fit
to adapt the image's rendering to fit the given width and height if the exact image dimensions are not known in advance.
semantics_label
A semantic description of the image. Used to provide a description of the image to TalkBack on Android, and VoiceOver on iOS.
src
Image URL. This could be an external URL, e.g. https://picsum.photos/200/200
or internal URL to reference app assets, e.g. /my-image.png
.
You can specify assets_dir
in flet.app()
call to set the location of assets that should be available to the application. assets_dir
could be a relative to your main.py
directory or an absolute path. For example, consider the following program structure:
/assets
/images/my-image.png
main.py
You can access your images in the application as following:
import flet as ft
def main(page: ft.Page):
page.add(ft.Image(src=f"/images/my-image.png"))
flet.app(
target=main,
assets_dir="assets"
)
src_base64
Displays an image from Base-64 encoded string, for example:
import flet as ft
def main(page: ft.Page):
page.add(ft.Image(src_base64="iVBORw0KGgoAAAANSUhEUgAAABkAAAAgCAYAAADnnNMGAAAACXBIWXMAAAORAAADkQFnq8zdAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAA6dJREFUSImllltoHFUYx3/fzOzm0lt23ZrQ1AQbtBehNpvQohgkBYVo410RwQctNE3Sh0IfiiBoIAjqi6TYrKnFy4O3oiiRavDJFi3mXomIBmOxNZe63ay52GR3Zj4f2sTEzmx3m//TYf7/c35zvgPnO6KqrESXqpq3muocAikv6m+/zytj3ejik1VN21G31YA9CgJ6xC+bMyQZPVCuarciPAMYC99V6Vw5pLbFSibHmlVoRVj9P3cmPBM8tSJI/M6mzabpfoAQ9fIF7WK4bd5vvuFnLGgy2vi0abg94A0AcJGvMq3hDxGRyar9r4F+iLAm0yIiRk8m37tctS1WsrIhhrI30+Srmg+J87OXUf3lWGS1q89dC6ltsSanxk4Aj2QBABii96300g87P/rtlrWr8l+vyDMfdlXSyyEikqxsiOUAQJCBhfHdXRfCq1LSsSlcWG+KBAGStvvrMkgiuv8lUc2mREukPwLUfHG+uTQv8Eown7VL3XlbBxYhf1c17hbVF3MDwA9bts280TnaU1YYqPby07aeFlUlHt27wSQ4CLo+F8AvoTCvHmyKF+ZbEb/M77P2LgvAwmrTHAHflN3KZxVbMC2jMFNOpgPnrMSOhvvFkMezXdwV4ePbtvHtxnJAMQ0j4JtVnO+eLb5oiSlt5HDbv7t1O90lpYCCCKbhfzW5kAIwUAazR0BlfII8Ow0I6uoVmI9MyAMwbMs8CExmDbk4zgu931MyO4OI4KrYflkRjOoTI+uM9d1vjotwKPu9QMk/sxzuO8POiVFcdZ1M2YBVsMEAKOqLvaPIe7mACuw0z/80SMH58SMplxlfiDhVi7dw2pltRhjKBQTQdrSja2KKTfE551NHuaZ0QVPvWYQUn31/Vm2nDvgjF4grVJx6suSvrvrSJ/6cSW2Oz9mf264uNrB806xZ1k/CZ49dUKgDEtlCROX2hfHpx8pGuuo3PpqYulw8fjndOp1yhgtNKRevJ1FyR2Ola+jXAjdnwTkZ6o896GdWdxDw7IxFg+0DpmXchTKSBWQnIuJn9u4j7dt+13UfHXEkXQOcuQ4kMhVtqsgUyPiQiPQfHw1NB2sRjmXKuTg1NwwBYLhtPtQX26eqTwGXPDOqvmcC4Hnwfrrad94GrVsOYTqUTkQY+iTlNe/6O1miSP/x0VB/+wMIDwHn/vtV1iQC4Xv95uUEWVCoL9Y5Z+gdovoyMHUFJHv88jmVy0vTuw7cZNv2YaA61Bfb7ZX5F8SaUv2xwZevAAAAAElFTkSuQmCC"))
ft.app(target=main)
Use base64
command (Linux, macOS, WSL) to convert file to Base64 format, for example:
base64 -i <image.png> -o <image-base64.txt>
On Windows you can use PowerShell to encode string into Base64 format:
[convert]::ToBase64String((Get-Content -path "your_file_path" -Encoding byte))
repeat
How to paint any portions of the layout bounds not covered by the image.
Property value is ImageRepeat
enum with supported values: NO_REPEAT
(default), REPEAT
, REPEAT_X
, REPEAT_Y
.
semantics_label
A semantics label for this image.
tooltip
The text displayed when hovering a mouse over the Image.
width
If set, require the image to have this width.
If not set, the image will pick a size that best preserves its intrinsic aspect ratio.
It is strongly recommended that either both the width and the height be specified, or that the Image be placed in a context that sets tight layout constraints, so that the image does not change size as it loads. Consider using fit
to adapt the image's rendering to fit the given width and height if the exact image dimensions are not known in advance.