图像

Inherits: Resource < Reference < Object

类别: 核心

简要说明

图像数据类型。

属性

Dictionary

data

“data”:poolbytearray(),“format”:“lum8”,“height”:0,“mipmaps”:false,“width”:0_

方法

无效

blend_rect ( Image src, Rect2 src_rect, Vector2 dst )

无效

blend_rect_mask ( Image src, Image mask, Rect2 src_rect, Vector2 dst )

无效

blit_rect ( Image src, Rect2 src_rect, Vector2 dst )

无效

blit_rect_mask ( Image src, Image mask, Rect2 src_rect, Vector2 dst )

无效

bumpmap_to_normalmap ( float bump_scale=1.0 )

无效

clear_mipmaps ( )

Error

compress ( CompressMode mode, CompressSource source, float lossy_quality )

无效

convert ( Format format )

无效

copy_from ( Image src )

无效

create ( int width, int height, bool use_mipmaps, Format format )

无效

create_from_data ( int width, int height, bool use_mipmaps, Format format, PoolByteArray data )

无效

crop ( int width, int height )

Error

decompress ( )

AlphaMode

detect_alpha ( ) const

无效

expand_x2_hq2x ( )

无效

fill ( Color color )

无效

fix_alpha_edges ( )

无效

flip_x ( )

无效

flip_y ( )

Error

generate_mipmaps ( bool renormalize=false )

PoolByteArray

get_data ( ) const

Format

get_format ( ) const

int

get_height ( ) const

int

get_mipmap_offset ( int mipmap ) const

Color

get_pixel ( int x, int y ) const

Color

get_pixelv ( Vector2 src ) const

Image

get_rect ( Rect2 rect ) const

Vector2

get_size ( ) const

Rect2

get_used_rect ( ) const

int

get_width ( ) const

bool

has_mipmaps ( ) const

bool

is_compressed ( ) const

bool

is_empty ( ) const

bool

is_invisible ( ) const

Error

load ( String path )

Error

load_jpg_from_buffer ( PoolByteArray buffer )

Error

load_png_from_buffer ( PoolByteArray buffer )

Error

load_webp_from_buffer ( PoolByteArray buffer )

无效

lock ( )

无效

normalmap_to_xy ( )

无效

premultiply_alpha ( )

无效

resize ( int width, int height, Interpolation interpolation=1 )

无效

resize_to_po2 ( bool square=false )

Image

rgbe_to_srgb ( )

Error

save_png ( String path ) const

无效

set_pixel ( int x, int y, Color color )

无效

set_pixelv ( Vector2 dst, Color color )

无效

shrink_x2 ( )

无效

srgb_to_linear ( )

无效

unlock ( )

枚举

枚举 格式

  • 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到线性颜色空间的转换。

注: 当创建 ImageTexture 执行从sRGB到线性颜色空间的转换。

注: 当创建 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 以及与之交互的多个函数。最大宽度和高度 ImageMAX_WIDTHMAX_HEIGHT .

属性描述

违约

“data”:poolbytearray(),“format”:“lum8”,“height”:0,“mipmaps”:false,“width”:0_

以给定格式保存图像的所有颜色数据。见 FORMAT_* 常量。

方法说明

阿尔法混合物 src_rectsrc 以坐标表示的此图像的图像 dest .

阿尔法混合物 src_rectsrc 图像到此图像使用 mask 坐标处的图像 dst . 两者都需要α通道 srcmask . dst 像素和 src 如果对应的遮罩像素的alpha值不是0,则像素将混合。 src 图像和 mask 形象 must 大小(宽度和高度)相同,但格式不同。

副本 src_rectsrc 以坐标表示的此图像的图像 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。

压缩图像以减少内存。图像压缩时无法直接访问像素数据。如果选定的压缩模式不可用,则返回错误。见 COMPRESS_* 常量。

  • void convert ( Format format )

转换图像的格式。见 FORMAT_* 常量。

  • void copy_from ( Image src )

副本 src 图像到该图像。

创建给定大小和格式的空图像。见 FORMAT_* 常量。如果 use_mipmapstrue 然后为该图像生成mipmap。查看 generate_mipmaps .

创建给定大小和格式的新图像。见 FORMAT_* 常量。用给定的原始数据填充图像。如果 use_mipmapstrue 然后为该图像生成mipmap。查看 generate_mipmaps .

  • void crop ( int width, int height )

将图像裁剪到给定的 widthheight . 如果指定的大小大于当前大小,则额外的区域将填充黑色像素。

如果图像被压缩,则对其进行解压缩。如果解压缩函数不可用,则返回错误。

如果图像有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 ( )

垂直翻转图像。

  • Error generate_mipmaps ( bool renormalize=false )

为图像生成mipmap。MIPMAP是预先计算的,并且图像的分辨率较低。如果图像在渲染时需要缩小比例,则会自动使用mipmap。这可以提高图像质量和渲染性能。如果图像被压缩、以自定义格式或图像的宽度/高度为0,则返回错误。

返回图像的原始数据。

返回图像的格式。见 FORMAT_* 常量。

  • int get_height ( ) const

返回图像的高度。

  • int get_mipmap_offset ( int mipmap ) const

返回带有索引的图像mipmap的偏移量 mipmap 存储在 data 字典。

返回像素的颜色 (x, y) 如果图像被锁定。如果图像未锁定,它始终返回 Color 用价值 (0, 0, 0, 1.0) .

返回一个新图像,该图像是用 rect .

返回图像的大小(宽度和高度)。

  • 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 .

从jpeg文件的二进制内容加载图像。

从PNG文件的二进制内容加载图像。

从WebP文件的二进制内容加载图像。

  • void lock ( )

锁定数据以进行读写访问。如果在读取或写入像素时图像未锁定,则向控制台发送错误。

  • void normalmap_to_xy ( )

转换图像数据以表示三维平面上的坐标。当图像表示法线贴图时使用此选项。NormalMap可以在不增加多边形计数的情况下向三维曲面添加大量细节。

  • void premultiply_alpha ( )

将颜色值与alpha值相乘。像素的结果颜色值为 (color * alpha)/256 .

将图像大小调整为给定的 widthheight . 新像素的计算使用 interpolation . 见 interpolation 常量。

  • void resize_to_po2 ( bool square=false )

将图像的宽度和高度调整为最接近2的幂。如果 squaretrue 然后将宽度和高度设置为相同。

将图像保存为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 ( )

解锁数据并防止更改。