Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Image¶
Inherits: Resource < Reference < Object
Tipo de datos de imagen.
Descripción¶
Native image datatype. Contains image data which can be converted to an ImageTexture and provides commonly used image processing methods. The maximum width and height for an Image
are MAX_WIDTH and MAX_HEIGHT.
An Image
cannot be assigned to a texture
property of an object directly (such as Sprite), and has to be converted manually to an ImageTexture first.
Note: The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
Tutoriales¶
Propiedades¶
|
Métodos¶
void |
blend_rect ( Image src, Rect2 src_rect, Vector2 dst ) |
void |
blend_rect_mask ( Image src, Image mask, Rect2 src_rect, Vector2 dst ) |
void |
|
void |
blit_rect_mask ( Image src, Image mask, Rect2 src_rect, Vector2 dst ) |
void |
bumpmap_to_normalmap ( float bump_scale=1.0 ) |
void |
clear_mipmaps ( ) |
compress ( CompressMode mode, CompressSource source, float lossy_quality ) |
|
void |
|
void |
|
void |
create ( int width, int height, bool use_mipmaps, Format format ) |
void |
create_from_data ( int width, int height, bool use_mipmaps, Format format, PoolByteArray data ) |
void |
|
decompress ( ) |
|
detect_alpha ( ) const |
|
void |
expand_x2_hq2x ( ) |
void |
|
void |
|
void |
fix_alpha_edges ( ) |
void |
flip_x ( ) |
void |
flip_y ( ) |
generate_mipmaps ( bool renormalize=false ) |
|
get_data ( ) const |
|
get_format ( ) const |
|
get_height ( ) const |
|
get_mipmap_offset ( int mipmap ) const |
|
get_pixelv ( Vector2 src ) const |
|
get_size ( ) const |
|
get_used_rect ( ) const |
|
get_width ( ) const |
|
has_mipmaps ( ) const |
|
is_compressed ( ) const |
|
is_empty ( ) const |
|
is_invisible ( ) const |
|
load_bmp_from_buffer ( PoolByteArray buffer ) |
|
load_jpg_from_buffer ( PoolByteArray buffer ) |
|
load_png_from_buffer ( PoolByteArray buffer ) |
|
load_tga_from_buffer ( PoolByteArray buffer ) |
|
load_webp_from_buffer ( PoolByteArray buffer ) |
|
void |
lock ( ) |
void |
normalmap_to_xy ( ) |
void |
|
void |
resize ( int width, int height, Interpolation interpolation=1 ) |
void |
resize_to_po2 ( bool square=false, Interpolation interpolation=1 ) |
rgbe_to_srgb ( ) |
|
save_png_to_buffer ( ) const |
|
void |
|
void |
set_pixelv ( Vector2 dst, Color color ) |
void |
shrink_x2 ( ) |
void |
srgb_to_linear ( ) |
void |
unlock ( ) |
Enumeraciones¶
enum Format:
FORMAT_L8 = 0 --- Formato de textura con una única profundidad de 8 bits que representa la luminancia.
FORMAT_LA8 = 1 --- Formato de textura OpenGL con dos valores, luminancia y alfa, cada uno almacenado con 8 bits.
FORMAT_R8 = 2 --- OpenGL texture format
RED
with a single component and a bitdepth of 8.
Note: When using the GLES2 backend, this uses the alpha channel instead of the red channel for storage.
FORMAT_RG8 = 3 --- Formato de textura OpenGL
RG
con dos componentes y una profundidad de bits de 8 para cada uno.FORMAT_RGB8 = 4 --- Formato de textura OpenGL
RGB
con tres componentes, cada uno con una profundidad de 8 bits.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_RGBA8 = 5 --- Formato de textura OpenGL
RGB
con tres componentes, cada uno con una profundidad de 8 bits.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_RGBA4444 = 6 --- Formato de textura OpenGL
RGBA
con cuatro componentes, cada uno con una profundidad de bits de 4.FORMAT_RGBA5551 = 7 --- OpenGL texture format
GL_RGB5_A1
where 5 bits of depth for each component of RGB and one bit for alpha.FORMAT_RF = 8 --- Formato de textura OpenGL
GL_R32F
donde hay un componente, un valor de 32 bits de punto flotante.FORMAT_RGF = 9 --- Formato de textura OpenGL
GL_RG32F
donde hay dos componentes, cada uno con valores de 32 bits de real.FORMAT_RGBF = 10 --- Formato de textura OpenGL
GL_RGB32F
donde hay tres componentes, cada uno con valores de 32 bits real.FORMAT_RGBAF = 11 --- Formato de textura OpenGL
GL_RGBA32F
donde hay cuatro componentes, cada uno con valores de 32 bits real.FORMAT_RH = 12 --- Formato de textura OpenGL
GL_R32F
donde hay un componente, un valor de punto flotante de 16 bits de "media precisión" real.FORMAT_RGH = 13 --- Formato de textura OpenGL
GL_RG32F
donde hay dos componentes, cada uno un valor de 16 bits de "media precisión" real.FORMAT_RGBH = 14 --- Formato de textura OpenGL
GL_RGB32F
donde hay tres componentes, cada uno de ellos un valor de 16 bits de "media precisión" real.FORMAT_RGBAH = 15 --- Formato de textura OpenGL
GL_RGBA32F
donde hay cuatro componentes, cada uno de ellos un valor de 16 bits de "media precisión" real.FORMAT_RGBE9995 = 16 --- Un formato especial de textura OpenGL donde los tres componentes de color tienen 9 bits de precisión y los tres comparten un único exponente de 5 bits.
FORMAT_DXT1 = 17 --- El formato de textura S3TC que utiliza la Compresión de Bloque 1, y es la variación más pequeña de S3TC, sólo proporciona 1 bit de datos alfa y de color siendo premultiplicado con alfa.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_DXT3 = 18 --- El formato de textura S3TC que utiliza la Compresión de Bloque 2, y los datos de color se interpretan como que no han sido premultiplicados por el alfa. Es muy adecuado para imágenes con transiciones alfa nítidas entre áreas translúcidas y opacas.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_DXT5 = 19 --- El formato de textura S3TC también conocido como Compresión de Bloque 3 o BC3 que contiene 64 bits de datos de canal alfa seguidos de 64 bits de datos de color codificados en DXT1. Los datos de color no son premultiplicados por el alfa, igual que el DXT3. DXT5 generalmente produce resultados superiores para gradientes transparentes en comparación con DXT3.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_RGTC_R = 20 --- Formato de textura que utiliza Compresión de textura rojo-verde, normalizando los datos del canal rojo utilizando el mismo algoritmo de compresión que DXT5 utiliza para el canal alfa.
FORMAT_RGTC_RG = 21 --- Formato de textura que utiliza Compresión de textura rojo-verde, normalizando los datos de los canales rojo y verde utilizando el mismo algoritmo de compresión que DXT5 utiliza para el canal alfa.
FORMAT_BPTC_RGBA = 22 --- Formato de textura que utiliza la compresión BPTC con componentes RGBA normalizados sin signo.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_BPTC_RGBF = 23 --- Formato de textura que utiliza la compresión BPTC con componentes RGB reales firmados.
FORMAT_BPTC_RGBFU = 24 --- Formato de textura que utiliza la compresión BPTC con componentes RGB reales sin firmar.
FORMAT_PVRTC2 = 25 --- El formato de textura usado en las plataformas móviles soportadas por PowerVR, usa una profundidad de color de 2 bits sin alfa. Más información puede ser encontrada aquí.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_PVRTC2A = 26 --- Igual que PVRTC2, pero con un componente alfa.
FORMAT_PVRTC4 = 27 --- Similar a PVRTC2, pero con una profundidad de color de 4 bits y sin alfa.
FORMAT_PVRTC4A = 28 --- Igual que PVRTC4, pero con un componente alfa.
FORMAT_ETC = 29 --- Formato de Compresión de Textura Ericsson 1, también conocido como "ETC1", y es parte del estándar de gráficos OpenGL ES. Este formato no puede almacenar un canal alfa.
FORMAT_ETC2_R11 = 30 --- Formato de compresión de textura Ericsson 2 (
R11_EAC
variant), que proporciona un canal de datos sin firmar.FORMAT_ETC2_R11S = 31 --- Formato de compresión de textura de Ericsson 2 (variante de
SIGNED_R11_EAC
), que proporciona un canal de datos firmado.FORMAT_ETC2_RG11 = 32 --- Formato de compresión de textura de Ericsson 2 (
RG11_EAC
variant), que proporciona dos canales de datos sin firmar.FORMAT_ETC2_RG11S = 33 --- Formato de compresión de textura de Ericsson 2 (variante de
SIGNED_RG11_EAC
), que proporciona dos canales de datos firmados.FORMAT_ETC2_RGB8 = 34 --- Formato de compresión de textura de Ericsson 2 (
RGB8
variant), que es una continuación del ETC1 y comprime los datos del RGB888.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_ETC2_RGBA8 = 35 --- Formato de compresión de textura de Ericsson 2 (
RGBA8
variant), que comprime los datos de RGBA8888 con soporte alfa completo.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_ETC2_RGB8A1 = 36 --- Formato de compresión de textura de Ericsson 2 (
RGB8_PUNCHTHROUGH_ALPHA1
variant), que comprime los datos de RGBA para hacer el alfa totalmente transparente o totalmente opaco.
Nota: Al crear una ImageTexture, se realiza una conversión del espacio de color sRGB a lineal.
FORMAT_MAX = 37 --- Representa el tamaño del enum Format.
enum Interpolation:
INTERPOLATE_NEAREST = 0 --- Realiza la interpolación del vecino más cercano. Si se cambia el tamaño de la imagen, será pixelada.
INTERPOLATE_BILINEAR = 1 --- Realiza una interpolación bilineal. Si se cambia el tamaño de la imagen, será borrosa. Este modo es más rápido que INTERPOLATE_CUBIC, pero da como resultado una menor calidad.
INTERPOLATE_CUBIC = 2 --- Realiza una interpolación cúbica. Si se cambia el tamaño de la imagen, será borrosa. Este modo a menudo da mejores resultados en comparación con INTERPOLATE_BILINEAR, a costa de ser más lento.
INTERPOLATE_TRILINEAR = 3 --- Performs bilinear separately on the two most-suited mipmap levels, then linearly interpolates between them.
It's slower than INTERPOLATE_BILINEAR, but produces higher-quality results with far fewer aliasing artifacts.
If the image does not have mipmaps, they will be generated and used internally, but no mipmaps will be generated on the resulting image.
Note: If you intend to scale multiple copies of the original image, it's better to call generate_mipmaps] on it in advance, to avoid wasting processing power in generating them again and again.
On the other hand, if the image already has mipmaps, they will be used, and a new set will be generated for the resulting image.
INTERPOLATE_LANCZOS = 4 --- Realiza la interpolación de Lanczos. Es el modo de redimensionamiento de imágenes más lento, pero suele dar los mejores resultados, especialmente cuando se reducen las imágenes.
enum AlphaMode:
ALPHA_NONE = 0 --- La imagen no tiene alfa.
ALPHA_BIT = 1 --- La imagen almacena el alfa en un solo bit.
ALPHA_BLEND = 2 --- La imagen usa el alfa.
enum CompressMode:
COMPRESS_S3TC = 0 --- Use la compresión S3TC.
COMPRESS_PVRTC2 = 1 --- Use la compresión PVRTC2.
COMPRESS_PVRTC4 = 2 --- Use la compresión PVRTC4.
COMPRESS_ETC = 3 --- Use la compresión ETC.
COMPRESS_ETC2 = 4 --- Use la compresión ETC2.
enum CompressSource:
COMPRESS_SOURCE_GENERIC = 0 --- La textura de la fuente (antes de la compresión) es una textura regular. Por defecto para todas las texturas.
COMPRESS_SOURCE_SRGB = 1 --- La textura de la fuente (antes de la compresión) está en el espacio sRGB.
COMPRESS_SOURCE_NORMAL = 2 --- La textura de la fuente (antes de la compresión) es una textura normal (por ejemplo, puede ser comprimida en dos canales).
Constantes¶
MAX_WIDTH = 16384 --- El ancho máximo permitido para los recursos
Image
.MAX_HEIGHT = 16384 --- La altura máxima permitida para los recursos
Image
.
Descripciones de Propiedades¶
Dictionary data
Default |
|
Holds all the image's color data in a given format. See Format constants.
Descripciones de Métodos¶
Mezcla usando Alfa src_rect
de la imagen src
a esta imagen en las coordenadas dest
.
Mezcla usando alfasrc_rect
de la imagen src
a esta imagen usando la imagen mask
en las coordenadas dst
. Se requieren canales alfa tanto para src
como para mask
. Los píxeles de dst
y los píxeles de src
se mezclarán si el valor alfa del píxel de la máscara correspondiente no es 0. La imagen src
y la imagen mask
** deben** tener el mismo tamaño (ancho y alto) pero pueden tener formatos diferentes.
Copia src_rect
de la imagen src
a esta imagen en las coordenadas dst
.
src_rect
área de bits de la imagen src
a esta imagen en las coordenadas dadas por dst
. El pixel de src
se copia en dst
si el valor alfa del pixel correspondiente de mask
no es 0. La imagen src
y la imagen mask
deben tener el mismo tamaño (anchura y altura) pero pueden tener formatos diferentes.
void bumpmap_to_normalmap ( float bump_scale=1.0 )
Convierte un bumpmap en un mapa normal. Un bumpmap proporciona un desplazamiento de altura por píxel, mientras que un mapa normal proporciona una dirección normal por píxel.
void clear_mipmaps ( )
Elimina los mipmaps de la imagen.
Error compress ( CompressMode mode, CompressSource source, float lossy_quality )
Comprime la imagen para usar menos memoria. No se puede acceder directamente a los datos de los píxeles mientras la imagen está comprimida. Devuelve el error si el modo de compresión elegido no está disponible. Vea las constantes CompressMode y CompressSource.
void convert ( Format format )
Convierte el formato de la imagen. Ver las constantes Format.
void copy_from ( Image src )
Copia la imagen src
a esta imagen.
Crea una imagen vacía de un tamaño y formato determinados. Ver las constantes Format. Si use_mipmaps
es true
entonces genera mipmaps para esta imagen. Ver el generate_mipmaps.
void create_from_data ( int width, int height, bool use_mipmaps, Format format, PoolByteArray data )
Crea una nueva imagen de un tamaño y formato determinado. Ver las constantes Format. Llena la imagen con los datos en bruto dados. Si use_mipmaps
es true
entonces carga los mipmaps de esta imagen a partir de data
. Ver generate_mipmaps.
Recorta la imagen al width
y alto
dados. Si el tamaño especificado es mayor que el actual, el área extra se rellena con píxeles negros.
Error decompress ( )
Descomprime la imagen si está comprimida. Devuelve un error si la función de descompresión no está disponible.
AlphaMode detect_alpha ( ) const
Devuelve ALPHA_BLEND si la imagen tiene datos para valores alfa. Devuelve ALPHA_BIT si todos los valores alfa están almacenados en un solo bit. Devuelve ALPHA_NONE si no se encuentran datos para valores alfa.
void expand_x2_hq2x ( )
Stretches the image and enlarges it by a factor of 2. No interpolation is done.
void fill ( Color color )
Fills the image with color
.
Fills rect
with color
.
void fix_alpha_edges ( )
Mezcla píxeles con el nivel alfa bajo con píxeles cercanos.
void flip_x ( )
Voltea la imagen horizontalmente.
void flip_y ( )
Voltea la imagen verticalmente.
Generates mipmaps for the image. Mipmaps are precalculated lower-resolution copies of the image that are automatically used if the image needs to be scaled down when rendered. They help improve image quality and performance when rendering. This method returns an error if the image is compressed, in a custom format, or if the image's width/height is 0
.
Note: Mipmap generation is done on the CPU, is single-threaded and is always done on the main thread. This means generating mipmaps will result in noticeable stuttering during gameplay, even if generate_mipmaps is called from a Thread.
PoolByteArray get_data ( ) const
Returns a copy of the image's raw data.
Format get_format ( ) const
Devuelve el formato de la imagen. Ver las constantes Format.
int get_height ( ) const
Devuelve la altura de la imagen.
Devuelve el desplazamiento donde el mipmap de la imagen con el índice mipmap
se almacena en el diccionario data
.
Returns the color of the pixel at (x, y)
if the image is locked. If the image is unlocked, it always returns a Color with the value (0, 0, 0, 1.0)
. This is the same as get_pixelv, but two integer arguments instead of a Vector2 argument.
Returns the color of the pixel at src
if the image is locked. If the image is unlocked, it always returns a Color with the value (0, 0, 0, 1.0)
. This is the same as get_pixel, but with a Vector2 argument instead of two integer arguments.
Devuelve una nueva imagen que es una copia del área de la imagen especificada con rect
.
Vector2 get_size ( ) const
Devuelve el tamaño de la imagen (anchura y altura).
Rect2 get_used_rect ( ) const
Devuelve un Rect2 que encierra la porción visible de la imagen, considerando cada píxel con un canal alfa no nulo como visible.
int get_width ( ) const
Devuelve el ancho de la imagen.
bool has_mipmaps ( ) const
Devuelve true
si la imagen ha generado mipmaps.
bool is_compressed ( ) const
Devuelve true
si la imagen está comprimida.
bool is_empty ( ) const
Devuelve true
si la imagen no tiene datos.
bool is_invisible ( ) const
Devuelve true
si todos los píxeles de la imagen tienen un valor alfa de 0. Devuelve false
si algún píxel tiene un valor alfa superior a 0.
Loads an image from file path
. See Supported image formats for a list of supported image formats and limitations.
Warning: This method should only be used in the editor or in cases when you need to load external images at run-time, such as images located at the user://
directory, and may not work in exported projects.
See also ImageTexture description for usage examples.
Error load_bmp_from_buffer ( PoolByteArray buffer )
Loads an image from the binary contents of a BMP file.
Note: Godot's BMP module doesn't support 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported.
Error load_jpg_from_buffer ( PoolByteArray buffer )
Carga una imagen del contenido binario de un archivo JPEG.
Error load_png_from_buffer ( PoolByteArray buffer )
Carga una imagen del contenido binario de un archivo PNG.
Error load_tga_from_buffer ( PoolByteArray buffer )
Carga una imagen del contenido binario de un archivo TGA.
Error load_webp_from_buffer ( PoolByteArray buffer )
Carga una imagen del contenido binario de un archivo WebP.
void lock ( )
Locks the data for reading and writing access. Sends an error to the console if the image is not locked when reading or writing a pixel.
void normalmap_to_xy ( )
Convierte los datos de la imagen para representar las coordenadas en un plano 3D. Esto se usa cuando la imagen representa un mapa normal. Un mapa normal puede añadir muchos detalles a una superficie tridimensional sin aumentar el número de polígonos.
void premultiply_alpha ( )
Multiplica los valores de color por los valores alfa. Los valores de color resultantes para un píxel son (color * alfa)/256
.
void resize ( int width, int height, Interpolation interpolation=1 )
Resizes the image to the given width
and height
. New pixels are calculated using the interpolation
mode defined via Interpolation constants.
void resize_to_po2 ( bool square=false, Interpolation interpolation=1 )
Resizes the image to the nearest power of 2 for the width and height. If square
is true
then set width and height to be the same. New pixels are calculated using the interpolation
mode defined via Interpolation constants.
Image rgbe_to_srgb ( )
Convierte una imagen estándar RGBE (Red Green Blue Exponent) en una imagen sRGB.
Saves the image as an EXR file to path
. If grayscale
is true
and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return @GlobalScope.ERR_UNAVAILABLE if Godot was compiled without the TinyEXR module.
Note: The TinyEXR module is disabled in non-editor builds, which means save_exr will return @GlobalScope.ERR_UNAVAILABLE when it is called from an exported project.
Guarda la imagen como un archivo PNG en path
.
PoolByteArray save_png_to_buffer ( ) const
Sets the Color of the pixel at (x, y)
if the image is locked. Example:
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
Sets the Color of the pixel at (dst.x, dst.y)
if the image is locked. Note that the dst
values must be integers. Example:
var img = Image.new()
img.create(img_width, img_height, false, Image.FORMAT_RGBA8)
img.lock()
img.set_pixelv(Vector2(x, y), color) # Works
img.unlock()
img.set_pixelv(Vector2(x, y), color) # Does not have an effect
void shrink_x2 ( )
Reduce la imagen en un factor de 2.
void srgb_to_linear ( )
Convierte los datos en bruto del espacio de color sRGB a una escala lineal.
void unlock ( )
Unlocks the data and prevents changes.