图像

Image 控件用于显示图像::

`python Python 示例:: `

wimg = Image(source='mylogo.png')

Kv 示例:

Image:
    source: 'mylogo.png'
    size: self.texture_size

异步加载

要以异步方式加载图像(例如从外部网络服务器),请使用 AsyncImage 子类:

aimg = AsyncImage(source='http://mywebsite.com/logo.png')

这很有用,因为它可以防止您的应用程序等待图像加载完成。如果您想要显示大图像或从URL获取图像,使用:class:`AsyncImage`将允许这些资源在后台线程中检索,而不会阻塞您的应用程序。

对齐

默认情况下,图像在控件边界框内居中显示。

调整。

要控制图像如何调整以适应部件框内,应使用 fit_mode 属性。可用选项包括:

  • "scale-down":保持宽高比,不进行拉伸。

  • "fill":拉伸以填满控件,可能导致变形。

  • "contain":保持宽高比并调整大小以适应控件内部。

  • "cover":保持宽高比并拉伸以填满控件,可能会裁剪。

图像。

更多细节,请参阅 fit_mode

你也可以继承Image类并创建自己的样式。例如,如果你希望图片大于控件的大小,可以这样做:

class FullImage(Image):
    pass

而在你的Kivy语言文件中::

<-FullImage>:
    canvas:
        Color:
            rgb: (1, 1, 1)
        Rectangle:
            texture: self.texture
            size: self.width + 20, self.height + 20
            pos: self.x - 10, self.y - 10
class kivy.uix.image.AsyncImage(**kwargs)[源代码]

基类:Image

异步图像类。更多信息请参阅模块文档。

备注

AsyncImage 是 Image 类的一种特殊形式。你可能需要参考 loader 文档,特别是 ProxyImage,以了解如何处理异步图像加载相关事件的更多细节。

备注

AsyncImage 目前不支持属性 anim_loopmipmap,设置这些属性将不会产生任何效果。

remove_from_cache()[源代码]

从缓存中移除图像。

在 2.0.0 版本加入.

class kivy.uix.image.Image(**kwargs)[源代码]

基类:Widget

Image 类,更多信息请参阅模块文档。

allow_stretch

如果为 True,归一化后的图像尺寸将最大化以适应图像框。否则,如果图像框过高,图像将不会拉伸超过 1:1 像素比例。

在 1.0.7 版本加入.

自 2.2.0 版本弃用: allow_stretch 已被弃用。请改用 fit_mode

allow_stretch 是一个 BooleanProperty,默认值为 False。

anim_delay

如果图像是序列帧(如动态GIF),则延迟动画。若将anim_delay设置为-1,动画将停止。

在 1.0.8 版本加入.

anim_delay 是一个 NumericProperty,默认值为 0.25(即 4 帧每秒)。

anim_loop

循环播放次数,达到后停止动画。0表示持续动画。

在 1.9.0 版本加入.

anim_loop 是一个 NumericProperty,默认值为 0。

color

图像颜色,格式为(r, g, b, a)。此属性可用于对图像进行“着色”。请注意:如果源图像不是灰色/白色,颜色将无法按预期效果正常工作。

在 1.0.6 版本加入.

color 是一个 ColorProperty,默认值为 [1, 1, 1, 1]。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

fit_mode

如果图像的大小与控件的大小不同,请确定应如何调整图像大小以适配控件框内。

可用选项:

  • "scale-down":图像将被缩小以适应部件内部。

框,保持其宽高比且不拉伸。如果图像尺寸小于控件,则以其原始大小显示。如果图像的宽高比与控件不同,控件框上会出现空白区域。

  • "fill":图像被拉伸以填满整个控件,**无论

其宽高比或尺寸。如果图像的宽高比与控件不同,此选项可能导致图像变形。

  • "contain":图像被缩放以适应部件框内部,

保持其宽高比。如果图像尺寸大于控件尺寸,其行为将类似于``"scale-down"。然而,如果图像尺寸小于控件尺寸,与"scale-down"``不同,图像将被调整大小以适应控件内部。如果图像的宽高比与控件不同,控件框上将会出现空白区域。

  • "cover":图片将水平或垂直拉伸以

填充控件框,保持其宽高比。如果图像的宽高比与控件不同,则图像将被裁剪以适应。

fit_mode 是一个 OptionProperty,默认值为 "scale-down"

image_ratio

图像的宽高比(宽度 / 浮点数(高度))。

image_ratio 是一个 AliasProperty,并且是只读的。

keep_data

如果为 True,底层的 _coreimage 将存储原始图像数据。这在执行基于像素的碰撞检测时非常有用。

在 1.3.0 版本加入.

keep_data 是一个 BooleanProperty,默认值为 False。

keep_ratio

如果 allow_stretchTrue 且此值为 False,则归一化后的图像尺寸将被最大化以适应图像框,并忽略图像的宽高比。否则,如果图像框过高,图像将不会拉伸超过 1:1 像素比例。

在 1.0.8 版本加入.

自 2.2.0 版本弃用: keep_ratio 已被弃用。请改用 fit_mode

keep_ratio 是一个 BooleanProperty,默认值为 True。

mipmap

指示是否要对纹理应用OpenGL mipmapping。更多信息请参阅 Mipmapping(多级纹理映射)

在 1.0.7 版本加入.

mipmap 是一个 BooleanProperty,默认值为 False。

nocache

如果此属性设置为True,图像将不会被添加到内部缓存中。缓存将直接忽略任何试图追加核心图像的调用。

在 1.6.0 版本加入.

nocache 是一个 BooleanProperty,默认值为 False。

norm_image_size

控件框内的归一化图像尺寸。

该尺寸将始终适应控件大小,并保持图像比例。

norm_image_size 是一个 AliasProperty,并且是只读的。

reload()[源代码]

从磁盘重新加载图像。这便于在图像内容发生变化时,从磁盘重新加载图像。

在 1.3.0 版本加入.

用法:

im = Image(source = '1.jpg')
# -- do something --
im.reload()
# image will be re-loaded from disk
remove_from_cache()[源代码]

从缓存中移除图像。

在 2.0.0 版本加入.

source

文件名 / 图片来源。

source 是一个 StringProperty,默认值为 None。

texture

图像的纹理对象。该纹理代表原始加载的图像纹理。在渲染过程中,它会根据 fit_mode 属性进行拉伸和定位。

根据纹理创建方式的不同,该值将是一个 TextureTextureRegion 对象。

texture 是一个 ObjectProperty,默认值为 None。

texture_size

图像的纹理大小。这表示原始加载的图像纹理尺寸。

警告

纹理大小是在纹理属性之后设置的。因此,如果你监听 texture 的变化,属性 texture_size 将不会是最新的。请改用 self.texture.size。