Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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: 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 ( Vector2i size )

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 ( Vector2i size )

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


void update ( Image image )

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

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

如果需要频繁更新纹理,请使用该方法而不是 set_image,这比每次为一个新纹理分配额外内存要快。