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

如此一来,便可通过加载编辑器内外部的图像,在运行时动态创建纹理。

警告:最好使用 @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 像素。

教程

属性

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 🔗

返回该纹理的格式。


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