ImageTexture

继承: Texture2D < Texture < Resource < RefCounted < Object

基于ImageTexture2D

描述

基于ImageTexture2D。要显示图像,必须使用create_from_image()方法从中创建ImageTexture

var image=Image.load_from_file("res://icon.svg")
var texture=ImageTexture.create_from_image(image)
$Sprite2D.texture=texture

通过这种方式,可以在运行时从编辑器内部和外部加载图像来创建纹理。

警告:最好使用@S3Script.load()加载导入的纹理,而不是使用Image.load()从文件系统内部动态加载它们,因为这在导出项目中可能不起作用:

var texture=load("res://icon.svg")
$Sprite2D.texture=texture

这是因为图像必须作为CompressedTexture2D导入,然后才能使用@S3Script.load()加载。如果您仍然想像加载任何其他Resource一样加载图像文件,请将其作为Image资源导入,然后使用@S3Script.load()方法正常加载。

注意:可以使用Texture2D.get_image()方法从导入的纹理中检索图像,它返回图像的副本:

var texture=load("res://icon.svg")
var image=texture.get_image()

ImageTexture不打算直接在编辑器界面内操作,它主要用于通过代码在屏幕上动态渲染图像。如果需要从编辑器内按程序生成图像,请考虑将图像保存和导入为实现新EditorImportPlugin的自定义纹理资源。

注意:由于图形硬件的限制,最大纹理大小为16384×16384像素。

属性

bool

resource_local_to_scene

false (overrides Resource)

方法

ImageTexture

create_from_image(image: Image) static

Format

get_format() const

void

set_image(image: Image)

void

set_size_override(size: Vector2i)

void

update(image: Image)


方法说明

ImageTexture create_from_image(image: Image) static 🔗

创建一个新的ImageTexture并通过分配和设置来自Image的数据来初始化它。


Format get_format() const 🔗

返回纹理的格式,Format之一。


void set_image(image: Image) 🔗

用新的Image替换纹理的数据。这将为纹理重新分配新内存。

如果您想更新图像,但不需要更改其参数(格式、大小),请改用update()以获得更好的性能。


void set_size_override(size: Vector2i) 🔗

将纹理调整为指定的尺寸。


void update(image: Image) 🔗

用新的Image替换纹理的数据。

注意:纹理必须使用create_from_image()创建或首先使用set_image()方法初始化,然后才能更新。新的图像尺寸、格式和mipmap配置应与现有纹理的图像配置相匹配。

如果您需要频繁更新纹理,请在set_image()上使用此方法,这比每次为新纹理分配额外内存更快。