Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

ImageConversion.EncodeArrayToEXR

Объявление

public static byte[] EncodeArrayToEXR(Array array, Experimental.Rendering.GraphicsFormat format, uint width, uint height, uint rowBytes, Texture2D.EXRFlags flags);

Параметры

array Массив байтов для преобразования.
format Пиксельный формат данных изображения.
width Ширина данных изображения в пикселях.
height Высота данных изображения в пикселях.
rowBytes Длина одной строки в байтах.
flags Флаги, используемые для управления сжатием и выходным форматом.

Описание

Кодирует этот массив в формат EXR.

Эта функция возвращает массив байтов, который представляет собой данные файла EXR. Запишите эти данные на диск, чтобы получить данные в формате файла EXR.

Эту функцию лучше всего использовать для форматов текстур HDR (16-битных или 32-битных с плавающей запятой). Выходной формат по умолчанию — 16-битный EXR с плавающей запятой.

Закодированные данные EXR всегда будут содержать альфа-канал.

Для одноканальных красных текстур ( R8, R16, RFloat и RHalf), закодированные данные будут в оттенках серого.

Этот метод является потокобезопасным.

Если передать rowBytes значение 0, длина строки в байтах будет автоматически рассчитана.

// Saves screenshot as EXR file. using System.Collections; using System.IO; using UnityEngine; public class EXRScreenSaver : MonoBehaviour { // Take a shot immediately IEnumerator Start() { yield return SaveScreenEXR(); } IEnumerator SaveScreenEXR() { // Read the screen buffer after rendering is complete yield return new WaitForEndOfFrame(); // Create a texture in RGBAFloat format the size of the screen int width = Screen.width; int height = Screen.height; Texture2D tex = new Texture2D(width, height, TextureFormat.RGBAFloat, false); // Read the screen contents into the texture tex.ReadPixels(new Rect(0, 0, width, height), 0, 0); tex.Apply(); // Encode the bytes in EXR format byte[] bytes = ImageConversion.EncodeArrayToEXR(tex.GetRawTextureData(), tex.graphicsFormat, (uint)width, (uint)height); Object.Destroy(tex); // Write the returned byte array to a file in the project folder File.WriteAllBytes(Application.dataPath + "/../SavedScreen.exr", bytes); } }

Смотрите так же: EncodeToEXR, EncodeNativeArrayToEXR, EncodeArrayToPNG, EncodeArrayToJPG, EncodeArrayToTGA.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3