Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
ImageTexture
继承: Texture2D < Texture < Resource < RefCounted < Object
描述
基于 Image 的 Texture2D。若要显示图像,必须使用 create_from_image() 方法从中创建一个 ImageTexture:
var image = Image.load_from_file("res://icon.svg")
var texture = ImageTexture.create_from_image(image)
$Sprite2D.texture = texture
如此一来,便可通过加载编辑器内外部的图像,在运行时动态创建纹理。
警告:最好使用 @GDScript.load() 加载导入的纹理,而不是使用 Image.load() 从文件系统中动态加载它们,因为后者可能不适用于导出的项目:
var texture = load("res://icon.svg")
$Sprite2D.texture = texture
这是因为图像必须首先作为 CompressedTexture2D 被导入,然后才能被 @GDScript.load() 加载。若仍希望像加载其他 Resource 一样加载图像文件,可先将其作为 Image 资源导入,然后使用 @GDScript.load() 方法正常加载。
注意:若要从已导入的纹理中重新获得图像,可以使用 Texture2D.get_image(),该方法返回图像的副本:
var texture = load("res://icon.svg")
var image = texture.get_image()
ImageTexture 并非设计为在编辑器界面内直接操作,其主要用途是通过代码在屏幕上动态渲染图像。如果你需要在编辑器内部程序化生成图像,请考虑将其保存并导入为自定义纹理资源,这需要实现一个新的 EditorImportPlugin。
注意:由于图形硬件限制,最大纹理大小为 16384×16384 像素。
教程
属性
resource_local_to_scene |
|
方法
create_from_image(image: Image) static |
|
void |
|
void |
set_size_override(size: Vector2i) |
void |
方法说明
ImageTexture create_from_image(image: Image) static 🔗
创建一个新的 ImageTexture,并通过分配和设置来自 Image 的数据来初始化它。
void set_image(image: Image) 🔗
用新的 Image 替换该纹理的数据。这将为该纹理重新分配新内存。
如果要更新图像,但不需要更改其参数(格式、大小),请改用 update() 以获得更好的性能。
void set_size_override(size: Vector2i) 🔗
将纹理的大小调整为指定的尺寸。
用新的 Image 替换该纹理的数据。
注意:该纹理必须使用 create_from_image() 创建或首先使用 set_image() 方法初始化,然后才能更新。新的图像大小、格式和 mipmap 配置,应与现有纹理的图像配置相匹配。
如果需要频繁更新纹理,请使用该方法而不是 set_image(),这比每次为一个新纹理分配额外内存要快。