Image

Image datatype.

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 constant MAX_WIDTH and constant 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.

@GodotBaseClass
struct Image {}

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Enums

AlphaMode
enum AlphaMode
CompressMode
enum CompressMode
CompressSource
enum CompressSource
Constants
enum Constants
Format
enum Format
Interpolation
enum Interpolation

Functions

_getData
Dictionary _getData()
_setData
void _setData(Dictionary data)
blendRect
void blendRect(Image src, Rect2 src_rect, Vector2 dst)

Alpha-blends src_rect from src image to this image at coordinates dest.

blendRectMask
void blendRectMask(Image src, Image mask, Rect2 src_rect, Vector2 dst)

Alpha-blends src_rect from src image to this image using mask image at coordinates dst. Alpha channels are required for both src and mask. dst pixels and src pixels will blend if the corresponding mask pixel's alpha value is not 0. src image and mask image must have the same size (width and height) but they can have different formats.

blitRect
void blitRect(Image src, Rect2 src_rect, Vector2 dst)

Copies src_rect from src image to this image at coordinates dst.

blitRectMask
void blitRectMask(Image src, Image mask, Rect2 src_rect, Vector2 dst)

Blits src_rect area from src image to this image at the coordinates given by dst. src pixel is copied onto dst if the corresponding mask pixel's alpha value is not 0. src image and mask image must have the same size (width and height) but they can have different formats.

bumpmapToNormalmap
void bumpmapToNormalmap(double bump_scale)

Converts a bumpmap to a normalmap. A bumpmap provides a height offset per-pixel, while a normalmap provides a normal direction per pixel.

clearMipmaps
void clearMipmaps()

Removes the image's mipmaps.

compress
GodotError compress(long mode, long source, double lossy_quality)

Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. See compressmode and compresssource constants.

convert
void convert(long format)

Converts the image's format. See format constants.

copyFrom
void copyFrom(Image src)

Copies src image to this image.

create
void create(long width, long height, bool use_mipmaps, long format)

Creates an empty image of given size and format. See format constants. If use_mipmaps is true then generate mipmaps for this image. See the generateMipmaps.

createFromData
void createFromData(long width, long height, bool use_mipmaps, long format, PoolByteArray data)

Creates a new image of given size and format. See format constants. Fills the image with the given raw data. If use_mipmaps is true then loads mipmaps for this image from data. See generateMipmaps.

crop
void crop(long width, long height)

Crops the image to the given width and height. If the specified size is larger than the current size, the extra area is filled with black pixels.

decompress
GodotError decompress()

Decompresses the image if it is compressed. Returns an error if decompress function is not available.

detectAlpha
Image.AlphaMode detectAlpha()

Returns constant ALPHA_BLEND if the image has data for alpha values. Returns constant ALPHA_BIT if all the alpha values are stored in a single bit. Returns constant ALPHA_NONE if no data for alpha values is found.

expandX2Hq2x
void expandX2Hq2x()

Stretches the image and enlarges it by a factor of 2. No interpolation is done.

fill
void fill(Color color)

Fills the image with a given Color.

fixAlphaEdges
void fixAlphaEdges()

Blends low-alpha pixels with nearby pixels.

flipX
void flipX()

Flips the image horizontally.

flipY
void flipY()

Flips the image vertically.

generateMipmaps
GodotError generateMipmaps(bool renormalize)

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.

getData
PoolByteArray getData()

Returns a copy of the image's raw data.

getFormat
Image.Format getFormat()

Returns the image's format. See format constants.

getHeight
long getHeight()

Returns the image's height.

getMipmapOffset
long getMipmapOffset(long mipmap)

Returns the offset where the image's mipmap with index mipmap is stored in the data dictionary.

getPixel
Color getPixel(long x, long y)

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 getPixelv, but two integer arguments instead of a Vector2 argument.

getPixelv
Color getPixelv(Vector2 src)

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 getPixel, but with a Vector2 argument instead of two integer arguments.

getRect
Ref!Image getRect(Rect2 rect)

Returns a new image that is a copy of the image's area specified with rect.

getSize
Vector2 getSize()

Returns the image's size (width and height).

getUsedRect
Rect2 getUsedRect()

Returns a Rect2 enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible.

getWidth
long getWidth()

Returns the image's width.

hasMipmaps
bool hasMipmaps()

Returns true if the image has generated mipmaps.

isCompressed
bool isCompressed()

Returns true if the image is compressed.

isEmpty
bool isEmpty()

Returns true if the image has no data.

isInvisible
bool isInvisible()

Returns true if all the image's pixels have an alpha value of 0. Returns false if any pixel has an alpha value higher than 0.

load
GodotError load(String path)

Loads an image from file path. See url=https://docs.godotengine.org/en/3.3/getting_started/workflow/assets/importing_images.html#supported-image-formatsSupported image formats/url 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.

loadBmpFromBuffer
GodotError loadBmpFromBuffer(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.

loadJpgFromBuffer
GodotError loadJpgFromBuffer(PoolByteArray buffer)

Loads an image from the binary contents of a JPEG file.

loadPngFromBuffer
GodotError loadPngFromBuffer(PoolByteArray buffer)

Loads an image from the binary contents of a PNG file.

loadTgaFromBuffer
GodotError loadTgaFromBuffer(PoolByteArray buffer)

Loads an image from the binary contents of a TGA file.

loadWebpFromBuffer
GodotError loadWebpFromBuffer(PoolByteArray buffer)

Loads an image from the binary contents of a WebP file.

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

normalmapToXy
void normalmapToXy()

Converts the image's data to represent coordinates on a 3D plane. This is used when the image represents a normalmap. A normalmap can add lots of detail to a 3D surface without increasing the polygon count.

opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(Image other)
opEquals
bool opEquals(typeof(null) n)
premultiplyAlpha
void premultiplyAlpha()

Multiplies color values with alpha values. Resulting color values for a pixel are (color * alpha)/256.

resize
void resize(long width, long height, long interpolation)

Resizes the image to the given width and height. New pixels are calculated using the interpolation mode defined via interpolation constants.

resizeToPo2
void resizeToPo2(bool square, long interpolation)

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.

rgbeToSrgb
Ref!Image rgbeToSrgb()

Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image.

saveExr
GodotError saveExr(String path, bool grayscale)

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 constant ERR_UNAVAILABLE if Godot was compiled without the TinyEXR module. Note: The TinyEXR module is disabled in non-editor builds, which means saveExr will return constant ERR_UNAVAILABLE when it is called from an exported project.

savePng
GodotError savePng(String path)

Saves the image as a PNG file to path.

savePngToBuffer
PoolByteArray savePngToBuffer()
setPixel
void setPixel(long x, long y, Color color)

Sets the Color of the pixel at (x, y) if the image is locked. Example:

setPixelv
void setPixelv(Vector2 dst, Color color)

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:

shrinkX2
void shrinkX2()

Shrinks the image by a factor of 2.

srgbToLinear
void srgbToLinear()

Converts the raw data from the sRGB colorspace to a linear scale.

toHash
size_t toHash()
unlock
void unlock()

Unlocks the data and prevents changes.

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

data
Dictionary data [@property getter]
Dictionary data [@property setter]

Holds all the image's color data in a given format. See format constants.

Static functions

_new
Image _new()

Construct a new instance of Image. Note: use memnew!Image instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta