Image

Наследует: Resource < RefCounted < Object

Тип данных изображения.

Описание

Собственный тип данных изображения. Содержит данные изображения, которые можно преобразовать в ImageTexture, и предоставляет часто используемые методы обработки изображений. Максимальная ширина и высота для ImageMAX_WIDTH и MAX_HEIGHT.

Image нельзя назначить свойству текстуры объекта напрямую (например, Sprite2D.texture), и его необходимо сначала вручную преобразовать в ImageTexture.

Примечание: Максимальный размер изображения составляет 16384×16384 пикселей из-за ограничений графического оборудования. Более крупные изображения могут не импортироваться.

Обучающие материалы

Свойства

Dictionary

data

{ "data": PackedByteArray(), "format": "Lum8", "height": 0, "mipmaps": false, "width": 0 }

Методы

void

adjust_bcs(brightness: float, contrast: float, saturation: float)

void

blend_rect(src: Image, src_rect: Rect2i, dst: Vector2i)

void

blend_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i)

void

blit_rect(src: Image, src_rect: Rect2i, dst: Vector2i)

void

blit_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i)

void

bump_map_to_normal_map(bump_scale: float = 1.0)

void

clear_mipmaps()

Error

compress(mode: CompressMode, source: CompressSource = 0, astc_format: ASTCFormat = 0)

Error

compress_from_channels(mode: CompressMode, channels: UsedChannels, astc_format: ASTCFormat = 0)

Dictionary

compute_image_metrics(compared_image: Image, use_luma: bool)

void

convert(format: Format)

void

copy_from(src: Image)

Image

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

Image

create_empty(width: int, height: int, use_mipmaps: bool, format: Format) static

Image

create_from_data(width: int, height: int, use_mipmaps: bool, format: Format, data: PackedByteArray) static

void

crop(width: int, height: int)

Error

decompress()

AlphaMode

detect_alpha() const

UsedChannels

detect_used_channels(source: CompressSource = 0) const

void

fill(color: Color)

void

fill_rect(rect: Rect2i, color: Color)

void

fix_alpha_edges()

void

flip_x()

void

flip_y()

Error

generate_mipmaps(renormalize: bool = false)

PackedByteArray

get_data() const

int

get_data_size() const

Format

get_format() const

int

get_height() const

int

get_mipmap_count() const

int

get_mipmap_offset(mipmap: int) const

Color

get_pixel(x: int, y: int) const

Color

get_pixelv(point: Vector2i) const

Image

get_region(region: Rect2i) const

Vector2i

get_size() const

Rect2i

get_used_rect() const

int

get_width() const

bool

has_mipmaps() const

bool

is_compressed() const

bool

is_empty() const

bool

is_invisible() const

void

linear_to_srgb()

Error

load(path: String)

Error

load_bmp_from_buffer(buffer: PackedByteArray)

Error

load_dds_from_buffer(buffer: PackedByteArray)

Image

load_from_file(path: String) static

Error

load_jpg_from_buffer(buffer: PackedByteArray)

Error

load_ktx_from_buffer(buffer: PackedByteArray)

Error

load_png_from_buffer(buffer: PackedByteArray)

Error

load_svg_from_buffer(buffer: PackedByteArray, scale: float = 1.0)

Error

load_svg_from_string(svg_str: String, scale: float = 1.0)

Error

load_tga_from_buffer(buffer: PackedByteArray)

Error

load_webp_from_buffer(buffer: PackedByteArray)

void

normal_map_to_xy()

void

premultiply_alpha()

void

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

void

resize_to_po2(square: bool = false, interpolation: Interpolation = 1)

Image

rgbe_to_srgb()

void

rotate_90(direction: ClockDirection)

void

rotate_180()

Error

save_dds(path: String) const

PackedByteArray

save_dds_to_buffer() const

Error

save_exr(path: String, grayscale: bool = false) const

PackedByteArray

save_exr_to_buffer(grayscale: bool = false) const

Error

save_jpg(path: String, quality: float = 0.75) const

PackedByteArray

save_jpg_to_buffer(quality: float = 0.75) const

Error

save_png(path: String) const

PackedByteArray

save_png_to_buffer() const

Error

save_webp(path: String, lossy: bool = false, quality: float = 0.75) const

PackedByteArray

save_webp_to_buffer(lossy: bool = false, quality: float = 0.75) const

void

set_data(width: int, height: int, use_mipmaps: bool, format: Format, data: PackedByteArray)

void

set_pixel(x: int, y: int, color: Color)

void

set_pixelv(point: Vector2i, color: Color)

void

shrink_x2()

void

srgb_to_linear()


Перечисления

enum Format: 🔗

Format FORMAT_L8 = 0

Формат текстуры с единой 8-битной глубиной, представляющей яркость.

Format FORMAT_LA8 = 1

Формат текстуры OpenGL с двумя значениями: яркостью и альфа, каждое из которых хранится в 8 битах.

Format FORMAT_R8 = 2

Формат текстуры OpenGL RED с одним компонентом и глубиной цвета 8 бит.

Format FORMAT_RG8 = 3

Формат текстуры OpenGL RG с двумя компонентами и битовой глубиной 8 для каждого.

Format FORMAT_RGB8 = 4

Формат текстуры OpenGL RGB с тремя компонентами, каждый с глубиной цвета 8 бит.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_RGBA8 = 5

Формат текстуры OpenGL RGBA с четырьмя компонентами, каждый с глубиной цвета 8 бит.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_RGBA4444 = 6

Формат текстуры OpenGL RGBA с четырьмя компонентами, каждый с глубиной цвета 4.

Format FORMAT_RGB565 = 7

Формат текстуры OpenGL RGB с тремя компонентами. Красный и синий имеют битовую глубину 5, а зеленый имеет битовую глубину 6.

Format FORMAT_RF = 8

Формат текстуры OpenGL GL_R32F, в котором есть один компонент — 32-битное значение с плавающей точкой.

Format FORMAT_RGF = 9

Формат текстуры OpenGL GL_RG32F, в котором есть два компонента, каждый из которых представляет собой 32-битное значение с плавающей точкой.

Format FORMAT_RGBF = 10

Формат текстуры OpenGL GL_RGB32F, в котором есть три компонента, каждый из которых представляет собой 32-битное значение с плавающей точкой.

Format FORMAT_RGBAF = 11

Формат текстуры OpenGL GL_RGBA32F, в котором имеется четыре компонента, каждый из которых представляет собой 32-битное значение с плавающей точкой.

Format FORMAT_RH = 12

Формат текстуры OpenGL GL_R16F, в котором есть один компонент — 16-битное значение с плавающей запятой «половинной точности».

Format FORMAT_RGH = 13

Формат текстуры OpenGL GL_RG16F, в котором есть два компонента, каждый из которых представляет собой 16-битное значение с плавающей запятой «половинной точности».

Format FORMAT_RGBH = 14

Формат текстуры OpenGL GL_RGB16F, в котором есть три компонента, каждый из которых представляет собой 16-битное значение с плавающей запятой «половинной точности».

Format FORMAT_RGBAH = 15

Формат текстуры OpenGL GL_RGBA16F, в котором имеется четыре компонента, каждый из которых представляет собой 16-битное значение с плавающей запятой «половинной точности».

Format FORMAT_RGBE9995 = 16

Специальный формат текстуры OpenGL, в котором три цветовых компонента имеют точность 9 бит и все три имеют одну 5-битную экспоненту.

Format FORMAT_DXT1 = 17

Формат текстуры S3TC, который использует Block Compression 1, и является наименьшей вариацией S3TC, предоставляя только 1 бит альфа-канала и цветовых данных, предварительно умножаемых на альфа-канал.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_DXT3 = 18

Формат текстуры S3TC, который использует Block Compression 2, и данные о цвете интерпретируются как не умноженные предварительно на альфа. Хорошо подходит для изображений с резкими альфа-переходами между полупрозрачными и непрозрачными областями.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_DXT5 = 19

Формат текстуры S3TC, также известный как Block Compression 3 или BC3, который содержит 64 бита данных альфа-канала, за которыми следуют 64 бита цветовых данных, закодированных в DXT1. Цветовые данные не умножаются предварительно на альфа, как и DXT3. DXT5 обычно дает превосходные результаты для прозрачных градиентов по сравнению с DXT3.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_RGTC_R = 20

Формат текстуры, использующий сжатие красно-зеленой текстуры, нормализующий данные красного канала с использованием того же алгоритма сжатия, который DXT5 использует для альфа-канала.

Format FORMAT_RGTC_RG = 21

Формат текстуры, использующий сжатие красно-зеленой текстуры, нормализующий данные красного и зеленого каналов с использованием того же алгоритма сжатия, который DXT5 использует для альфа-канала.

Format FORMAT_BPTC_RGBA = 22

Формат текстуры, использующий сжатие BPTC с беззнаковыми нормализованными компонентами RGBA.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_BPTC_RGBF = 23

Формат текстуры, использующий сжатие BPTC со знаковыми компонентами RGB с плавающей точкой.

Format FORMAT_BPTC_RGBFU = 24

Формат текстуры, использующий сжатие BPTC с беззнаковыми компонентами RGB с плавающей точкой.

Format FORMAT_ETC = 25

Формат сжатия текстур Ericsson 1, также называемый "ETC1", и является частью графического стандарта OpenGL ES. Этот формат не может хранить альфа-канал.

Format FORMAT_ETC2_R11 = 26

Формат сжатия текстур Ericsson 2 (вариант R11_EAC), который предоставляет один канал не подписанных данных.

Format FORMAT_ETC2_R11S = 27

Формат сжатия текстур Ericsson 2 (вариант SIGNED_R11_EAC), который обеспечивает один канал подписанных данных.

Format FORMAT_ETC2_RG11 = 28

Формат сжатия текстур Ericsson 2 (вариант RG11_EAC), который предоставляет два канала неподписанных данных.

Format FORMAT_ETC2_RG11S = 29

Формат сжатия текстур Ericsson 2 (вариант SIGNED_RG11_EAC), который обеспечивает два канала подписанных данных.

Format FORMAT_ETC2_RGB8 = 30

Формат сжатия текстур Ericsson 2 (вариант RGB8), который является продолжением ETC1 и сжимает данные RGB888.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_ETC2_RGBA8 = 31

Формат сжатия текстур Ericsson 2 (вариант RGBA8), который сжимает данные RGBA8888 с полной поддержкой альфа-канала.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_ETC2_RGB8A1 = 32

Формат сжатия текстур Ericsson 2 (вариант RGB8_PUNCHTHROUGH_ALPHA1), который сжимает данные RGBA, чтобы сделать альфа-канал либо полностью прозрачным, либо полностью непрозрачным.

Примечание: При создании ImageTexture выполняется преобразование sRGB в линейное цветовое пространство.

Format FORMAT_ETC2_RA_AS_RG = 33

Формат сжатия текстур Ericsson 2 (вариант RGBA8), который сжимает данные RA и интерпретирует их как два канала (красный и зеленый). См. также FORMAT_ETC2_RGBA8.

Format FORMAT_DXT5_RA_AS_RG = 34

Формат текстуры S3TC, также известный как Block Compression 3 или BC3, который сжимает данные RA и интерпретирует их как два канала (красный и зеленый). См. также FORMAT_DXT5.

Format FORMAT_ASTC_4x4 = 35

Адаптивное масштабируемое сжатие текстур. Это реализует режим 4×4 (высокое качество).

Format FORMAT_ASTC_4x4_HDR = 36

Тот же формат, что и FORMAT_ASTC_4x4, но с подсказкой, сообщающей графическому процессору, что он используется для HDR.

Format FORMAT_ASTC_8x8 = 37

Адаптивное масштабируемое сжатие текстур. Это реализует режим 8×8 (низкое качество).

Format FORMAT_ASTC_8x8_HDR = 38

Тот же формат, что и FORMAT_ASTC_8x8, но с подсказкой, сообщающей графическому процессору, что он используется для HDR.

Format FORMAT_MAX = 39

Представляет размер перечисления Format.


enum Interpolation: 🔗

Interpolation INTERPOLATE_NEAREST = 0

Выполняет интерполяцию ближайшего соседа. Если изображение изменено, оно будет пикселизировано.

Interpolation INTERPOLATE_BILINEAR = 1

Выполняет билинейную интерполяцию. Если изменить размер изображения, оно будет размытым. Этот режим быстрее, чем INTERPOLATE_CUBIC, но приводит к снижению качества.

Interpolation INTERPOLATE_CUBIC = 2

Выполняет кубическую интерполяцию. Если изменить размер изображения, оно будет размытым. Этот режим часто дает лучшие результаты по сравнению с INTERPOLATE_BILINEAR, ценой более медленной работы.

Interpolation INTERPOLATE_TRILINEAR = 3

Выполняет билинейную обработку отдельно на двух наиболее подходящих уровнях MIP-карт, затем линейно интерполирует между ними.

Это медленнее, чем INTERPOLATE_BILINEAR, но дает более качественные результаты с гораздо меньшим количеством артефактов алиасинга.

Если изображение не имеет MIP-карт, они будут сгенерированы и использованы внутренне, но на результирующем изображении MIP-карты сгенерированы не будут.

Примечание: Если вы собираетесь масштабировать несколько копий исходного изображения, лучше вызвать generate_mipmaps()] заранее, чтобы избежать траты вычислительной мощности на их генерацию снова и снова.

С другой стороны, если изображение уже имеет MIP-карты, они будут использованы, и для результирующего изображения будет сгенерирован новый набор.

Interpolation INTERPOLATE_LANCZOS = 4

Выполняет интерполяцию Lanczos. Это самый медленный режим изменения размера изображения, но он обычно дает наилучшие результаты, особенно при уменьшении масштаба изображений.


enum AlphaMode: 🔗

AlphaMode ALPHA_NONE = 0

Изображение не имеет альфы.

AlphaMode ALPHA_BIT = 1

Изображение хранит альфа-канал в одном бите.

AlphaMode ALPHA_BLEND = 2

Изображ. исп. альфа-канал.


enum CompressMode: 🔗

CompressMode COMPRESS_S3TC = 0

Исп. S3TC компрессию.

CompressMode COMPRESS_ETC = 1

Исп. ETC компрессию.

CompressMode COMPRESS_ETC2 = 2

Исп. ETC2 компрессию.

CompressMode COMPRESS_BPTC = 3

Использовать BPTC компрессию.

CompressMode COMPRESS_ASTC = 4

Используйте ASTC компрессию.

CompressMode COMPRESS_MAX = 5

Представляет размер перечисления CompressMode.


enum UsedChannels: 🔗

UsedChannels USED_CHANNELS_L = 0

Изображение использует только один канал яркости (оттенки серого).

UsedChannels USED_CHANNELS_LA = 1

Изображение использует два канала для яркости и альфа соответственно.

UsedChannels USED_CHANNELS_R = 2

Изображение использует только красный канал.

UsedChannels USED_CHANNELS_RG = 3

Изображение использует два канала: красный и зеленый.

UsedChannels USED_CHANNELS_RGB = 4

Изображение использует три канала: красный, зеленый и синий.

UsedChannels USED_CHANNELS_RGBA = 5

Изображение использует четыре канала: красный, зеленый, синий и альфа.


enum CompressSource: 🔗

CompressSource COMPRESS_SOURCE_GENERIC = 0

Исходная текстура (до сжатия) — обычная текстура. По умолчанию для всех текстур.

CompressSource COMPRESS_SOURCE_SRGB = 1

Исходная текстура (до сжатия) находится в пространстве sRGB.

CompressSource COMPRESS_SOURCE_NORMAL = 2

Исходная текстура (до сжатия) — это обычная текстура (например, ее можно сжать в два канала).


enum ASTCFormat: 🔗

ASTCFormat ASTC_FORMAT_4x4 = 0

Подсказка, указывающая на необходимость использования высококачественного формата сжатия 4×4 ASTC.

ASTCFormat ASTC_FORMAT_8x8 = 1

Подсказка, указывающая на необходимость использования формата сжатия ASTC низкого качества 8×8.


Константы

MAX_WIDTH = 16777216 🔗

Максимально допустимая ширина для ресурсов Image.

MAX_HEIGHT = 16777216 🔗

Максимально допустимая высота для ресурсов Image.


Описания свойств

Dictionary data = { "data": PackedByteArray(), "format": "Lum8", "height": 0, "mipmaps": false, "width": 0 } 🔗

Содержит все данные о цвете изображения в заданном формате. См. константы Format.


Описания метода

void adjust_bcs(brightness: float, contrast: float, saturation: float) 🔗

Настраивает brightness, contrast и saturation этого изображения на заданные значения. Не работает, если изображение сжато (см. is_compressed()).


void blend_rect(src: Image, src_rect: Rect2i, dst: Vector2i) 🔗

Альфа-смешивания src_rect из изображения src с этим изображением в координатах dst, обрезается соответственно границам обоих изображений. Это изображение и изображение src должны иметь одинаковый формат. src_rect с неположительным размером рассматривается как пустой.


void blend_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i) 🔗

Альфа-смешивания src_rect из изображения src с этим изображением, используя изображение mask в координатах dst, обрезанное соответственно по обеим границам изображения. Альфа-каналы требуются как для src, так и для mask. Пиксели dst и пиксели src будут смешиваться, если значение альфа соответствующего пикселя маски не равно 0. Это изображение и изображение src должны иметь одинаковый формат. Изображение src и изображение mask должны иметь одинаковый размер (ширину и высоту), но они могут иметь разные форматы. src_rect с неположительным размером рассматривается как пустой.


void blit_rect(src: Image, src_rect: Rect2i, dst: Vector2i) 🔗

Копирует src_rect из изображения src в это изображение с координатами dst, обрезанное соответственно границам обоих изображений. Это изображение и изображение src должны иметь одинаковый формат. src_rect с неположительным размером рассматривается как пустой.

Примечание: Данные альфа-канала в src перезапишут соответствующие данные в этом изображении в целевой позиции. Чтобы смешать альфа-каналы, используйте вместо этого blend_rect().


void blit_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i) 🔗

Переносит область src_rect из изображения src в это изображение по координатам, заданным dst, обрезанным соответственно по обеим границам изображения. Пиксель src копируется в dst, если соответствующее значение альфа-канала пикселя mask не равно 0. Это изображение и изображение src должны иметь одинаковый формат. Изображение src и изображение mask должны иметь одинаковый размер (ширину и высоту), но они могут иметь разные форматы. src_rect с неположительным размером рассматривается как пустой.


void bump_map_to_normal_map(bump_scale: float = 1.0) 🔗

Преобразует карту рельефа (bump map) в карту нормалей. Карта рельефа обеспечивает смещение высоты на пиксель, тогда как карта нормалей обеспечивает направление нормали на пиксель.


void clear_mipmaps() 🔗

Удаляет MIP-текстуры изображения.


Error compress(mode: CompressMode, source: CompressSource = 0, astc_format: ASTCFormat = 0) 🔗

Сжимает изображение, чтобы использовать меньше памяти. Невозможно напрямую получить доступ к данным пикселей, пока изображение сжато. Возвращает ошибку, если выбранный режим сжатия недоступен.

Параметр source помогает выбрать лучший метод сжатия для форматов DXT и ETC2. Он игнорируется для сжатия ASTC.

Для сжатия ASTC необходимо указать параметр astc_format.


Error compress_from_channels(mode: CompressMode, channels: UsedChannels, astc_format: ASTCFormat = 0) 🔗

Сжимает изображение, чтобы использовать меньше памяти. Невозможно напрямую получить доступ к данным пикселей, пока изображение сжато. Возвращает ошибку, если выбранный режим сжатия недоступен.

Это альтернатива compress(), которая позволяет пользователю указать используемые каналы, чтобы компрессор выбрал лучшие форматы DXT и ETC2. Для других форматов (не DXT или ETC2) этот аргумент игнорируется.

Для сжатия ASTC необходимо указать параметр astc_format.


Dictionary compute_image_metrics(compared_image: Image, use_luma: bool) 🔗

Вычислите метрики изображения на текущем изображении и сравниваемом изображении.

Словарь содержит max, mean, mean_squared, root_mean_squared и peak_snr.


void convert(format: Format) 🔗

Преобразовать этот формат изображения в указанный format.


void copy_from(src: Image) 🔗

Копирует изображение src в это изображение.


Image create(width: int, height: int, use_mipmaps: bool, format: Format) static 🔗

Устарело: Use create_empty().

Создает пустое изображение указанного размера и формата. Если use_mipmaps равен true, генерирует mip-карты для этого изображения. См. generate_mipmaps().


Image create_empty(width: int, height: int, use_mipmaps: bool, format: Format) static 🔗

Создает пустое изображение указанного размера и формата. Если use_mipmaps равен true, генерирует mip-карты для этого изображения. См. generate_mipmaps().


Image create_from_data(width: int, height: int, use_mipmaps: bool, format: Format, data: PackedByteArray) static 🔗

Создает новое изображение указанного размера и формата. Заполняет изображение указанными необработанными данными. Если use_mipmaps равен true, загружает mip-карты для этого изображения из data. См. generate_mipmaps().


void crop(width: int, height: int) 🔗

Обрезает изображение до указанных width и height. Если указанный размер больше текущего размера, дополнительная область заполняется черными пикселями.


Error decompress() 🔗

Распаковывает изображение, если оно сжато VRAM в поддерживаемом формате. Возвращает @GlobalScope.OK, если формат поддерживается, в противном случае @GlobalScope.ERR_UNAVAILABLE.

Примечание: Можно распаковать следующие форматы: DXT, RGTC, BPTC. Форматы ETC1 и ETC2 не поддерживаются.


AlphaMode detect_alpha() const 🔗

Возвращает ALPHA_BLEND, если изображение имеет данные для альфа-значений. Возвращает ALPHA_BIT, если все альфа-значения хранятся в одном бите. Возвращает ALPHA_NONE, если данные для альфа-значений не найдены.


UsedChannels detect_used_channels(source: CompressSource = 0) const 🔗

Возвращает цветовые каналы, используемые этим изображением. Если изображение сжато, необходимо указать исходный source.


void fill(color: Color) 🔗

Заполняет изображение color.


void fill_rect(rect: Rect2i, color: Color) 🔗

Заполняет rect color.


void fix_alpha_edges() 🔗

Смешивает пиксели с низким альфа-каналом с соседними пикселями.


void flip_x() 🔗

Переворачивает изображение по горизонтали.


void flip_y() 🔗

Переворачивает изображение по вертикали.


Error generate_mipmaps(renormalize: bool = false) 🔗

Генерирует mip-карты для изображения. Mip-карты — это предварительно рассчитанные копии изображения с более низким разрешением, которые автоматически используются, если изображение необходимо уменьшить при рендеринге. Они помогают улучшить качество изображения и производительность при рендеринге. Этот метод возвращает ошибку, если изображение сжато, находится в пользовательском формате или если ширина/высота изображения равна 0. Включение renormalize при генерации mip-карт для текстур нормалей гарантирует, что все результирующие векторные значения будут нормализованы.

Можно проверить, есть ли у изображения mip-карты, вызвав has_mipmaps() или get_mipmap_count(). Вызов generate_mipmaps() для изображения, у которого уже есть mip-карты, заменит существующие mip-карты в изображении.


PackedByteArray get_data() const 🔗

Возвращает копию необработанных (raw) данных изображения.


int get_data_size() const 🔗

Возвращает размер (в байтах) необработанных данных изображения.


Format get_format() const 🔗

Возвращает формат этого изображения.


int get_height() const 🔗

Возвращает высоту изображения.


int get_mipmap_count() const 🔗

Возвращает количество уровней mipmap или 0, если изображение не имеет mipmap. Самое большое изображение основного уровня не считается уровнем mipmap этим методом, поэтому, если вы хотите включить его, вы можете добавить 1 к этому количеству.


int get_mipmap_offset(mipmap: int) const 🔗

Возвращает смещение, где хранится MIP-карта изображения с индексом mipmap в словаре data.


Color get_pixel(x: int, y: int) const 🔗

Возвращает цвет пикселя в (x, y).

Это то же самое, что и get_pixelv(), но с двумя целочисленными аргументами вместо аргумента Vector2i.


Color get_pixelv(point: Vector2i) const 🔗

Возвращает цвет пикселя в point.

Это то же самое, что и get_pixel(), но с аргументом Vector2i вместо двух целочисленных аргументов.


Image get_region(region: Rect2i) const 🔗

Возвращает новое Image, являющееся копией области данного Image, указанной с помощью region.


Vector2i get_size() const 🔗

Возвращает размер изображения (ширину и высоту).


Rect2i get_used_rect() const 🔗

Возвращает Rect2i, охватывающий видимую часть изображения, считая каждый пиксель с ненулевым альфа-каналом видимым.


int get_width() const 🔗

Возвращает ширину изображения.


bool has_mipmaps() const 🔗

Возвращает true, если изображение сгенерировало MIP-текстуры.


bool is_compressed() const 🔗

Возвращает true, если изображение сжато.


bool is_empty() const 🔗

Возвращает true, если изображение не содержит данных.


bool is_invisible() const 🔗

Возвращает true, если все пиксели изображения имеют альфа-значение 0. Возвращает false, если хотя бы один пиксель имеет альфа-значение больше 0.


void linear_to_srgb() 🔗

Преобразует все изображение из линейного цветового пространства в цветовое пространство sRGB. Работает только с изображениями с форматами FORMAT_RGB8 или FORMAT_RGBA8.


Error load(path: String) 🔗

Загружает изображение из файла path. См. Поддерживаемые форматы изображений для списка поддерживаемых форматов изображений и ограничений.

Предупреждение: Этот метод следует использовать только в редакторе или в случаях, когда вам нужно загрузить внешние изображения во время выполнения, например изображения, расположенные в каталоге user://, и он может не работать в экспортированных проектах.

См. также описание ImageTexture для примеров использования.


Error load_bmp_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла BMP.

Примечание: Модуль BMP Godot не поддерживает изображения с глубиной цвета 16 бит на пиксель. Поддерживаются только изображения с глубиной цвета 1 бит, 4 бит, 8 бит, 24 бит и 32 бита на пиксель.

Примечание: Этот метод доступен только в сборках движка с включенным модулем BMP. По умолчанию модуль BMP включен, но его можно отключить во время сборки с помощью параметра module_bmp_enabled=no в SCons.


Error load_dds_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла DDS.

Примечание: Этот метод доступен только в сборках движка с включенным модулем DDS. По умолчанию модуль DDS включен, но его можно отключить во время сборки с помощью параметра module_dds_enabled=no в SCons.


Image load_from_file(path: String) static 🔗

Создает новое Image и загружает данные из указанного файла.


Error load_jpg_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла JPEG.


Error load_ktx_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла KTX. В отличие от большинства форматов изображений, KTX может хранить сжатые VRAM данные и встраивать mip-карты.

Примечание: Реализация libktx от Godot поддерживает только 2D-изображения. Кубические карты, массивы текстур и де-паддинг не поддерживаются.

Примечание: Этот метод доступен только в сборках движка с включенным модулем KTX. По умолчанию модуль KTX включен, но его можно отключить во время сборки с помощью параметра module_ktx_enabled=no в SCons.


Error load_png_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого PNG-файла.


Error load_svg_from_buffer(buffer: PackedByteArray, scale: float = 1.0) 🔗

Загружает изображение из двоичного содержимого UTF-8 несжатого SVG-файла (.svg).

Примечание: Будьте осторожны при использовании сжатых SVG-файлов (например, .svgz), их необходимо распаковать перед загрузкой.

Примечание: Этот метод доступен только в сборках движка с включенным модулем SVG. По умолчанию модуль SVG включен, но его можно отключить во время сборки с помощью параметра module_svg_enabled=no в SCons.


Error load_svg_from_string(svg_str: String, scale: float = 1.0) 🔗

Загружает изображение из строкового содержимого файла SVG (.svg).

Примечание: Этот метод доступен только в сборках движка с включенным модулем SVG. По умолчанию модуль SVG включен, но его можно отключить во время сборки с помощью параметра module_svg_enabled=no в SCons.


Error load_tga_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла TGA.

Примечание: Этот метод доступен только в сборках движка с включенным модулем TGA. По умолчанию модуль TGA включен, но его можно отключить во время сборки с помощью параметра module_tga_enabled=no в SCons.


Error load_webp_from_buffer(buffer: PackedByteArray) 🔗

Загружает изображение из двоичного содержимого файла WebP.


void normal_map_to_xy() 🔗

Преобразует данные изображения в координаты на 3D-плоскости. Используется, когда изображение представляет собой карту нормалей. Карта нормалей может добавить много деталей к 3D-поверхности без увеличения количества полигонов.


void premultiply_alpha() 🔗

Умножает значения цвета на значения альфа. Результирующие значения цвета для пикселя: (color * alpha)/256. См. также CanvasItemMaterial.blend_mode.


void resize(width: int, height: int, interpolation: Interpolation = 1) 🔗

Изменяет размер изображения до заданных width и height. Новые пиксели рассчитываются с использованием режима interpolation, определенного через константы Interpolation.


void resize_to_po2(square: bool = false, interpolation: Interpolation = 1) 🔗

Изменяет размер изображения до ближайшей степени 2 для ширины и высоты. Если square равен true, ширина и высота устанавливаются одинаковыми. Новые пиксели вычисляются с использованием режима interpolation, определенного через константы Interpolation.


Image rgbe_to_srgb() 🔗

Преобразует стандартное изображение RGBE (Red Green Blue Exponent) в изображение sRGB.


void rotate_90(direction: ClockDirection) 🔗

Поворачивает изображение в указанном direction на 90 градусов. Ширина и высота изображения должны быть больше 1. Если ширина и высота не равны, изображение будет изменено.


void rotate_180() 🔗

Поворачивает изображение на 180 градусов. Ширина и высота изображения должны быть больше 1.


Error save_dds(path: String) const 🔗

Сохраняет изображение как файл DDS (DirectDraw Surface) в path. DDS — это формат контейнера, который может хранить текстуры в различных форматах сжатия, таких как DXT1, DXT5 или BC7. Эта функция вернет @GlobalScope.ERR_UNAVAILABLE, если Godot был скомпилирован без модуля DDS.

Примечание: Модуль DDS может быть отключен в некоторых сборках, что означает, что save_dds() вернет @GlobalScope.ERR_UNAVAILABLE при вызове из экспортированного проекта.


PackedByteArray save_dds_to_buffer() const 🔗

Сохраняет изображение как файл DDS (DirectDraw Surface) в байтовый массив. DDS — это контейнерный формат, который может хранить текстуры в различных форматах сжатия, таких как DXT1, DXT5 или BC7. Эта функция вернет пустой байтовый массив, если Godot был скомпилирован без модуля DDS.

Примечание: Модуль DDS может быть отключен в некоторых сборках, что означает, что save_dds_to_buffer() вернет пустой байтовый массив при вызове из экспортированного проекта.


Error save_exr(path: String, grayscale: bool = false) const 🔗

Сохраняет изображение как файл EXR в path. Если grayscale имеет значение true и изображение имеет только один канал, оно будет явно сохранено как монохромное, а не как один красный канал. Эта функция вернет @GlobalScope.ERR_UNAVAILABLE, если Godot был скомпилирован без модуля TinyEXR.

Примечание: Модуль TinyEXR отключен в сборках без редактора, что означает, что save_exr() вернет @GlobalScope.ERR_UNAVAILABLE при вызове из экспортированного проекта.


PackedByteArray save_exr_to_buffer(grayscale: bool = false) const 🔗

Сохраняет изображение как EXR-файл в массив байтов. Если grayscale имеет значение true и изображение имеет только один канал, оно будет явно сохранено как монохромное, а не как один красный канал. Эта функция вернет пустой массив байтов, если Godot был скомпилирован без модуля TinyEXR.

Примечание: Модуль TinyEXR отключен в сборках без редактора, что означает, что save_exr_to_buffer() вернет пустой массив байтов при вызове из экспортированного проекта.


Error save_jpg(path: String, quality: float = 0.75) const 🔗

Сохраняет изображение как файл JPEG в path с указанным quality между 0.01 и 1.0 (включительно). Более высокие значения quality приводят к более качественному выводу за счет большего размера файла. Рекомендуемые значения quality находятся между 0.75 и 0.90. Даже при качестве 1.00 сжатие JPEG остается с потерями.

Примечание: JPEG не сохраняет альфа-канал. Если Image содержит альфа-канал, изображение все равно будет сохранено, но полученный файл JPEG не будет содержать альфа-канал.


PackedByteArray save_jpg_to_buffer(quality: float = 0.75) const 🔗

Сохраняет изображение как файл JPEG в байтовый массив с указанным quality между 0.01 и 1.0 (включительно). Более высокие значения quality приводят к более качественному выводу за счет большего размера байтового массива (и, следовательно, использования памяти). Рекомендуемые значения quality находятся между 0.75 и 0.90. Даже при качестве 1.00 сжатие JPEG остается потеряным.

Примечание: JPEG не сохраняет альфа-канал. Если Image содержит альфа-канал, изображение все равно будет сохранено, но полученный байтовый массив не будет содержать альфа-канал.


Error save_png(path: String) const 🔗

Сохраняет изображение как файл PNG в файле по адресу path.


PackedByteArray save_png_to_buffer() const 🔗

Сохраняет изображение как PNG-файл в массиве байтов.


Error save_webp(path: String, lossy: bool = false, quality: float = 0.75) const 🔗

Сохраняет изображение как файл WebP (Web Picture) в файле по адресу path. По умолчанию он сохраняет без потерь. Если lossy равно true, изображение будет сохранено с потерями, используя настройку quality между 0.0 и 1.0 (включительно). WebP без потерь обеспечивает более эффективное сжатие, чем PNG.

Примечание: Формат WebP ограничен размером 16383×16383 пикселей, тогда как PNG может сохранять изображения большего размера.


PackedByteArray save_webp_to_buffer(lossy: bool = false, quality: float = 0.75) const 🔗

Сохраняет изображение как файл WebP (Web Picture) в файле по адресу path. По умолчанию он сохраняется без потерь. Если lossy равно true, изображение будет сохранено с потерями, с использованием параметра paramquality между 0.0 и 1.0 (включительно). WebP без потерь обеспечивает более эффективное сжатие, чем PNG.

Примечание: Формат WebP ограничен размером 16383×16383 пикселей, тогда как PNG может сохранять изображение большего размера.


void set_data(width: int, height: int, use_mipmaps: bool, format: Format, data: PackedByteArray) 🔗

Перезаписывает данные существующего Image. Нестатический эквивалент create_from_data().


void set_pixel(x: int, y: int, color: Color) 🔗

Устанавливает Color пикселя в (x, y) на color.

var img_width = 10
var img_height = 5
var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)

img.set_pixel(1, 2, Color.RED) # Устанавливает цвет в пикселе(1, 2) на красный.

Это то же самое, что и set_pixelv(), но с двумя целочисленными аргументами вместо аргумента Vector2i.


void set_pixelv(point: Vector2i, color: Color) 🔗

Устанавливает Color пикселя в point на color.

var img_width = 10
var img_height = 5
var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)

img.set_pixelv(Vector2i(1, 2), Color.RED) # Устанавливает цвет в точке (1, 2) на красный.

Это то же самое, что и set_pixel(), но с аргументом Vector2i вместо двух целочисленных аргументов.


void shrink_x2() 🔗

Уменьшает изображение в 2 раза по каждой оси (делит количество пикселей на 4).


void srgb_to_linear() 🔗

Преобразует необработанные данные из цветового пространства sRGB в линейную шкалу. Работает только с изображениями с форматами FORMAT_RGB8 или FORMAT_RGBA8.