ImageTexture
Inherits: Texture < Resource < Reference < Object
描述
基于图片的纹理,要显示一个图片,必须使用 create_from_image 方法来创建一个 ImageTexture
图片纹理数据:
var texture = ImageTexture.new()
var image = Image.new()
image.load("res://icon.png")
texture.create_from_image(image)
$Sprite.texture = texture
通过这种方式,可以在运行时通过从编辑器内部和外部加载图像来创建纹理。
警告: 最好用 @GDScript.load 加载导入的纹理,而不是使用 Image.load 从文件系统中动态加载它们,因为它可能无法在导出的项目中工作:
var texture = load("res://icon.png")
$Sprite.texture = texture
这是因为图像必须首先作为 StreamTexture 导入才能使用 @GDScript.load 加载。如果您仍然想像任何其他 Resource 一样加载图像文件,请将其作为 Image 资源导入,然后使用 @GDScript.load 方法正常加载它。
但请注意,仍然可以使用 Texture.get_data 方法从导入的纹理中检索图像数据,该方法返回数据的副本:
var texture = load("res://icon.png")
var image : Image = texture.get_data()
ImageTexture
不是直接在编辑器界面中操作的,主要用于通过代码在屏幕上动态渲染图像。如果您需要在编辑器中按程序生成图像,请考虑将图像保存和导入为自定义纹理资源,以实现新的 EditorImportPlugin。
注意:由于图形硬件限制,最大纹理尺寸为16384×16384像素。
教程
属性
flags |
| |
| ||
|
方法
void | create ( int width, int height, Format format, int flags=7 ) |
void | create_from_image ( Image image, int flags=7 ) |
get_format ( ) const | |
void | |
void | set_size_override ( Vector2 size ) |
枚举
enum Storage:
STORAGE_RAW = 0 —- Image 图像的原始储存数据。
STORAGE_COMPRESS_LOSSY = 1 —- Image数据是用有损算法压缩的。 你可以用lossy_quality设置存储质量。
STORAGE_COMPRESS_LOSSLESS = 2 —- Image数据是用无损算法压缩的。
属性说明
- float lossy_quality
Default |
|
Setter | set_lossy_storage_quality(value) |
Getter | get_lossy_storage_quality() |
STORAGE_COMPRESS_LOSSY的存储质量。
- Storage storage
Default |
|
Setter | set_storage(value) |
Getter | get_storage() |
存储类型,即原始、有损、或压缩。
方法说明
创建具有width
和height
的新ImageTexture
。
format
是Format中的一个值,flags
是Flags的任意组合。
通过使用 Flags 中的 flags
分配和设置来自 Image 的数据来初始化纹理。根据 Format,可以进行 sRGB 到线性颜色空间的转换。
- Format get_format ( ) const
返回纹理的格式,Format 之一。
从文件路径加载图像,并从中创建一个纹理图片。
注释::该方法已被废弃,并将在Godot 4.0中被删除,请建议使用Image.load()和create_from_image()代替。
- void set_data ( Image image )
用新的 Image 替换纹理的数据。
注意:纹理必须先用 create_from_image 方法初始化,然后才能更新。新的图像尺寸、格式和多级渐远纹理配置应与现有纹理的图像配置相匹配,否则必须使用 create_from_image 方法重新创建。
如果需要频繁更新纹理,请在 create_from_image 上使用此方法,这比每次为新纹理分配额外内存要快。
- void set_size_override ( Vector2 size )
将纹理的大小调整为指定的尺寸。