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

Texture2D.GetPixels

Объявление

public Color[] GetPixels(int miplevel = 0);

Параметры

miplevel MIP-уровень, с которого считываются пиксельные данные. По умолчанию используется 0.

Возвращает

Color[] Массив, содержащий копию запрошенных цветов пикселей.

Описание

Получает копию данных о цвете пикселя для заданного уровня MIP. Цвета представлены структурами Color.

Один вызов этой функции обычно быстрее, чем несколько вызовов GetPixel, особенно для больших текстур. Если допустимо представление с более низкой точностью, GetPixels32 работает быстрее и использует меньше памяти, поскольку не выполняет преобразования целых чисел в числа с плавающей запятой. Для прямого просмотра данных пикселей используйте GetPixelData. Если вам не нужно какое-либо декодирование или преобразование формата, самый быстрый способ получить доступ к пикселям — GetRawTextureData.

Для успешного выполнения этой функции Texture.isReadable должно быть true, а данные не должны быть сжаты Crunch. GetPixels32 поддерживает текстуры, сжатые Crunch.

Возвращенный массив представляет собой сглаженный двумерный массив, в котором данные отображаются построчно: пиксели располагаются слева направо и снизу вверх. Размеры массива составляют width * height мип-уровня. Если эта функция не работает, Unity выдает исключение.

using UnityEngine; public class Texture2DExample : MonoBehaviour { public Texture2D source; public Texture2D destination; void Start() { // Получить копию данных о цвете из источника Texture2D в высокоточном формате с плавающей запятой. // Каждый элемент массива представляет данные о цвете отдельного пикселя. int sourceMipLevel = 0; Color[] pixels = source.GetPixels(sourceMipLevel); // При необходимости обработайте пиксели перед их применением к месту назначения Texture2D. // Этот пример кода переворачивает массив, который поворачивает изображение на 180 градусов. System.Array.Reverse(pixels, 0, pixels.Length); // Set the pixels of the destination Texture2D. int destinationMipLevel = 0; destination.SetPixels(pixels, destinationMipLevel); // Apply changes to the destination Texture2D, which uploads its data to the GPU. destination.Apply(); } }

Смотрите так же: SetPixels, mipmapCount, GetPixelData, GetPixels32.


Объявление

public Color[] GetPixels(int x, int y, int blockWidth, int blockHeight, int miplevel = 0);

Параметры

x Позиция x массива пикселей для выборки.
y Позиция y массива пикселей для извлечения.
blockWidth Длина ширины извлекаемого массива пикселей.
blockHeight Длина высоты массива пикселей для извлечения.
miplevel MIP-уровень, с которого считываются пиксельные данные. По умолчанию используется 0.

Возвращает

Color[] Массив, содержащий копию запрошенных цветов пикселей.

Описание

Получает копию данных о цвете пикселя для заданной области заданного уровня MIP. Цвета представлены структурами Color.

Эта функция является расширенной версией GetPixels. Он не возвращает данные для всех пикселей, а только область blockWidth по blockHeight, начиная с x,y.

Блок ограничен размером мип-уровня. Размер возвращаемого массива: blockWidth*blockHeight.

// Получаем прямоугольную область текстуры и помещаем ее в // новая текстура размером с прямоугольник. using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { // Исходная текстура и прямоугольная область, которую мы хотим извлечь. public Texture2D sourceTex; public Rect sourceRect; void Start() { int x = Mathf.FloorToInt(sourceRect.x); int y = Mathf.FloorToInt(sourceRect.y); int width = Mathf.FloorToInt(sourceRect.width); int height = Mathf.FloorToInt(sourceRect.height); Color[] pix = sourceTex.GetPixels(x, y, width, height); Texture2D destTex = new Texture2D(width, height); destTex.SetPixels(pix); destTex.Apply(); // Установите текстуру текущего объекта, чтобы показать // извлеченный прямоугольник. GetComponent<Renderer>().material.mainTexture = destTex; } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3