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 |
|
get_format() const |
|
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(),这比每次为一个新纹理分配额外内存要快。