图像¶
Inherits: Resource < Reference < Object
类别: 核心
简要说明¶
图像数据类型。
方法¶
枚举¶
枚举 格式 :
FORMAT_L8 = 0
FORMAT_LA8 = 1
FORMAT_R8 = 2 ---OpenGL纹理格式
RED
单分量,比特深度为8。FORMAT_RG8 = 3 ---OpenGL纹理格式
RG
两个组件,每个组件的位深度为8。FORMAT_RGB8 = 4 ---OpenGL纹理格式
RGB
有三个组件,每个组件的位深度为8。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_RGBA8 = 5 ---OpenGL纹理格式
RGBA
包含四个组件,每个组件的位深度为8。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_RGBA4444 = 6 ---OpenGL纹理格式
RGBA
包含四个组件,每个组件的位深度为4。FORMAT_RGBA5551 = 7 ---OpenGL纹理格式
GL_RGB5_A1
其中,每个RGB分量的深度为5位,alpha分量的深度为1位。FORMAT_RF = 8 ---OpenGL纹理格式
GL_R32F
其中有一个组件,32位浮点值。FORMAT_RGF = 9 ---OpenGL纹理格式
GL_RG32F
其中有两个组件,每个组件都是32位浮点值。FORMAT_RGBF = 10 ---OpenGL纹理格式
GL_RGB32F
其中有三个组件,每个组件都是32位浮点值。FORMAT_RGBAF = 11 ---OpenGL纹理格式
GL_RGBA32F
其中有四个组件,每个组件都是32位浮点值。FORMAT_RH = 12 ---OpenGL纹理格式
GL_R32F
其中有一个组件,一个16位的“半精度”浮点值。FORMAT_RGH = 13 ---OpenGL纹理格式
GL_RG32F
其中有两个组件,每个组件有16位“半精度”浮点值。FORMAT_RGBH = 14 ---OpenGL纹理格式
GL_RGB32F
其中有三个分量,每个分量有16位“半精度”浮点值。FORMAT_RGBAH = 15 ---OpenGL纹理格式
GL_RGBA32F
其中有四个分量,每个分量有16位“半精度”浮点值。FORMAT_RGBE9995 = 16 ——一种特殊的OpenGL纹理格式,其中三种颜色分量的精度为9位,三种颜色分量共享一个5位指数。
FORMAT_DXT1 = 17 --- S3TC 使用块压缩1的纹理格式,是S3TC的最小变化,只提供1位alpha和颜色数据,与alpha预乘。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_DXT3 = 18 --- S3TC 使用块压缩2和颜色数据的纹理格式被解释为没有被alpha预乘。非常适合在半透明和不透明区域之间具有锐利阿尔法过渡的图像。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_DXT5 = 19 --- S3TC 纹理格式也称为块压缩3或BC3,包含64位alpha通道数据,后跟64位dxt1编码的颜色数据。颜色数据不会被alpha预乘,与dxt3相同。与dxt3相比,dxt5在透明梯度方面通常能产生更好的结果。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_RGTC_R = 20 ---使用的纹理格式 Red Green Texture Compression ,使用与dxt5用于alpha通道相同的压缩算法对红色通道数据进行规格化。
FORMAT_RGTC_RG = 21 ---使用的纹理格式 Red Green Texture Compression ,使用dxt5用于alpha通道的相同压缩算法对红色和绿色通道数据进行规格化。
FORMAT_BPTC_RGBA = 22 ---使用的纹理格式 BPTC 使用无符号标准化rgba组件进行压缩。
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_BPTC_RGBF = 23 ---使用的纹理格式 BPTC 带符号浮点RGB组件的压缩。
FORMAT_BPTC_RGBFU = 24 ---使用的纹理格式 BPTC 使用无符号浮点RGB组件进行压缩。
FORMAT_PVRTC2 = 25 ---在PowerVR支持的移动平台上使用的纹理格式,使用2位颜色深度,无alpha。可以找到更多信息 here .
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_PVRTC2A = 26 ---同 PVRTC2 但有一个alpha分量。
FORMAT_PVRTC4 = 27 ---类似于 PVRTC2 ,但具有4位颜色深度,没有alpha。
FORMAT_PVRTC4A = 28 ---同 PVRTC4 但有一个alpha分量。
FORMAT_ETC = 29 --- Ericsson Texture Compression format 1 也被称为“ETC1”,是OpenGL ES图形标准的一部分。此格式无法存储alpha通道。
FORMAT_ETC2_R11 = 30 --- Ericsson Texture Compression format 2 (
R11_EAC
variant), which provides one channel of unsigned data.FORMAT_ETC2_R11S = 31 --- Ericsson Texture Compression format 2 (
SIGNED_R11_EAC
variant), which provides one channel of signed data.FORMAT_ETC2_RG11 = 32 --- Ericsson Texture Compression format 2 (
RG11_EAC
variant), which provides two channels of unsigned data.FORMAT_ETC2_RG11S = 33 --- Ericsson Texture Compression format 2 (
SIGNED_RG11_EAC
variant), which provides two channels of signed data.FORMAT_ETC2_RGB8 = 34 --- Ericsson Texture Compression format 2 (
RGB8
variant), which is a follow-up of ETC1 and compresses RGB888 data.
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_ETC2_RGBA8 = 35 --- Ericsson Texture Compression format 2 (
RGBA8
variant), which compresses RGBA8888 data with full alpha support.
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_ETC2_RGB8A1 = 36 --- Ericsson Texture Compression format 2 (
RGB8_PUNCHTHROUGH_ALPHA1
variant), which compresses RGBA data to make alpha either fully transparent or fully opaque.
注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。
FORMAT_MAX = 37 ---表示 Format 枚举。
枚举 插值 :
INTERPOLATE_NEAREST = 0 ---执行最近邻插值。如果图像被调整大小,它将被像素化。
INTERPOLATE_BILINEAR = 1 ---执行双线性插值。如果调整图像的大小,它将变得模糊。此模式比 INTERPOLATE_CUBIC 但这会导致质量下降。
INTERPOLATE_CUBIC = 2 ---执行三次插值。如果调整图像的大小,它将变得模糊。这种模式通常比 INTERPOLATE_BILINEAR 以降低速度为代价。
INTERPOLATE_TRILINEAR = 3 ---在两个最合适的mipmap级别上分别执行双线性,然后在它们之间进行线性插值。
比…慢 INTERPOLATE_BILINEAR ,但使用更少的混叠伪影生成更高质量的结果。
如果图像没有mipmap,它们将在内部生成和使用,但不会在生成的图像上生成mipmap。
注: 如果您打算缩放原始图像的多个副本,最好调用 generate_mipmaps ]为了避免在一次又一次的产生过程中浪费处理能力。
另一方面,如果图像已经具有mipmap,则将使用它们,并为生成的图像生成新的集。
INTERPOLATE_LANCZOS = 4 ---执行Lanczos插值。这是最慢的图像大小调整模式,但它通常提供最佳的结果,尤其是当图像缩小时。
枚举 AlphaMode :
ALPHA_NONE = 0
ALPHA_BIT = 1
ALPHA_BLEND = 2
枚举 CompressMode :
COMPRESS_S3TC = 0
COMPRESS_PVRTC2 = 1
COMPRESS_PVRTC4 = 2
COMPRESS_ETC = 3
COMPRESS_ETC2 = 4
枚举 CompressSource :
COMPRESS_SOURCE_GENERIC = 0
COMPRESS_SOURCE_SRGB = 1
COMPRESS_SOURCE_NORMAL = 2
常量¶
MAX_WIDTH = 16384 ---允许的最大宽度
Image
资源。MAX_HEIGHT = 16384 ——允许的最大高度
Image
资源。
描述¶
本机映像数据类型。包含图像数据,可以将其转换为 Texture 以及与之交互的多个函数。最大宽度和高度 Image
是 MAX_WIDTH 和 MAX_HEIGHT .
属性描述¶
Dictionary data
违约 |
“data”:poolbytearray(),“format”:“lum8”,“height”:0,“mipmaps”:false,“width”:0_ |
以给定格式保存图像的所有颜色数据。见 FORMAT_*
常量。
方法说明¶
阿尔法混合物 src_rect
从 src
以坐标表示的此图像的图像 dest
.
阿尔法混合物 src_rect
从 src
图像到此图像使用 mask
坐标处的图像 dst
. 两者都需要α通道 src
和 mask
. dst
像素和 src
如果对应的遮罩像素的alpha值不是0,则像素将混合。 src
图像和 mask
形象 must 大小(宽度和高度)相同,但格式不同。
副本 src_rect
从 src
以坐标表示的此图像的图像 dst
.
布利茨 src_rect
来自的区域 src
图像到该图像的坐标由 dst
. src
像素被复制到 dst
如果相应的 mask
像素的alpha值不是0。 src
图像和 mask
形象 must 大小(宽度和高度)相同,但格式不同。
void bumpmap_to_normalmap ( float bump_scale=1.0 )
void clear_mipmaps ( )
删除图像的mipmap。
Error compress ( CompressMode mode, CompressSource source, float lossy_quality )
压缩图像以减少内存。图像压缩时无法直接访问像素数据。如果选定的压缩模式不可用,则返回错误。见 COMPRESS_*
常量。
void convert ( Format format )
转换图像的格式。见 FORMAT_*
常量。
void copy_from ( Image src )
副本 src
图像到该图像。
创建给定大小和格式的空图像。见 FORMAT_*
常量。如果 use_mipmaps
是 true
然后为该图像生成mipmap。查看 generate_mipmaps .
void create_from_data ( int width, int height, bool use_mipmaps, Format format, PoolByteArray data )
创建给定大小和格式的新图像。见 FORMAT_*
常量。用给定的原始数据填充图像。如果 use_mipmaps
是 true
然后为该图像生成mipmap。查看 generate_mipmaps .
将图像裁剪到给定的 width
和 height
. 如果指定的大小大于当前大小,则额外的区域将填充黑色像素。
Error decompress ( )
如果图像被压缩,则对其进行解压缩。如果解压缩函数不可用,则返回错误。
AlphaMode detect_alpha ( ) const
如果图像有alpha值的数据,则返回alpha_blend。如果所有alpha值都低于某个阈值或最大值,则返回alpha位。如果找不到alpha值的数据,则返回alpha_none。
void expand_x2_hq2x ( )
拉伸图像并将其放大2倍。不进行插值。
void fill ( Color color )
用给定的 Color .
void fix_alpha_edges ( )
将低阿尔法像素与附近的像素混合。
void flip_x ( )
水平翻转图像。
void flip_y ( )
垂直翻转图像。
为图像生成mipmap。MIPMAP是预先计算的,并且图像的分辨率较低。如果图像在渲染时需要缩小比例,则会自动使用mipmap。这可以提高图像质量和渲染性能。如果图像被压缩、以自定义格式或图像的宽度/高度为0,则返回错误。
PoolByteArray get_data ( ) const
返回图像的原始数据。
Format get_format ( ) const
返回图像的格式。见 FORMAT_*
常量。
int get_height ( ) const
返回图像的高度。
返回带有索引的图像mipmap的偏移量 mipmap
存储在 data
字典。
返回像素的颜色 (x, y)
如果图像被锁定。如果图像未锁定,它始终返回 Color 用价值 (0, 0, 0, 1.0)
.
返回一个新图像,该图像是用 rect
.
Vector2 get_size ( ) const
返回图像的大小(宽度和高度)。
Rect2 get_used_rect ( ) const
返回A Rect2 包围图像的可见部分。
int get_width ( ) const
返回图像的宽度。
bool has_mipmaps ( ) const
返回 true
如果图像生成了mipmap。
bool is_compressed ( ) const
返回 true
如果图像被压缩。
bool is_empty ( ) const
返回 true
如果图像没有数据。
bool is_invisible ( ) const
返回 true
如果图像的所有像素的alpha值都为0。退换商品 false
如果任何像素的alpha值大于0。
从文件加载图像 path
.
Error load_jpg_from_buffer ( PoolByteArray buffer )
从jpeg文件的二进制内容加载图像。
Error load_png_from_buffer ( PoolByteArray buffer )
从PNG文件的二进制内容加载图像。
Error load_webp_from_buffer ( PoolByteArray buffer )
从WebP文件的二进制内容加载图像。
void lock ( )
锁定数据以进行读写访问。如果在读取或写入像素时图像未锁定,则向控制台发送错误。
void normalmap_to_xy ( )
转换图像数据以表示三维平面上的坐标。当图像表示法线贴图时使用此选项。NormalMap可以在不增加多边形计数的情况下向三维曲面添加大量细节。
void premultiply_alpha ( )
将颜色值与alpha值相乘。像素的结果颜色值为 (color * alpha)/256
.
void resize ( int width, int height, Interpolation interpolation=1 )
将图像大小调整为给定的 width
和 height
. 新像素的计算使用 interpolation
. 见 interpolation
常量。
void resize_to_po2 ( bool square=false )
将图像的宽度和高度调整为最接近2的幂。如果 square
是 true
然后将宽度和高度设置为相同。
Image rgbe_to_srgb ( )
将图像保存为PNG文件 path
.
设置 Color 像素的 (x, y)
如果图像被锁定。例子:
var img = Image.new()
img.create(img_width, img_height, false, Image.FORMAT_RGBA8)
img.lock()
img.set_pixel(x, y, color) # Works
img.unlock()
img.set_pixel(x, y, color) # Does not have an effect
void shrink_x2 ( )
将图像缩小2倍。
void srgb_to_linear ( )
将原始数据从sRGB颜色空间转换为线性比例。
void unlock ( )
解锁数据并防止更改。