图像¶
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_loop和mipmap,设置这些属性将不会产生任何效果。
- class kivy.uix.image.Image(**kwargs)[源代码]¶
基类:
WidgetImage 类,更多信息请参阅模块文档。
- 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_stretch 为 True 且此值为 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
- source¶
文件名 / 图片来源。
source是一个StringProperty,默认值为 None。
- texture¶
图像的纹理对象。该纹理代表原始加载的图像纹理。在渲染过程中,它会根据
fit_mode属性进行拉伸和定位。根据纹理创建方式的不同,该值将是一个
Texture或TextureRegion对象。texture是一个ObjectProperty,默认值为 None。