版本:Unity 6(6000.0)
语言中文(简体)
  • C#

WebCamTexture.GetPixels32

提出更改建议

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们确实会阅读我们用户提出的每项建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public Color32[] GetPixels32(Color32[] colors = null);

参数

colors 用于写入像素数据的可选数组。

返回值

Color32[] 包含像素颜色的数组。

描述

Color32 结构体的形式获取给定mipmap级别的像素颜色数据。

此方法从 CPU 内存中的纹理获取像素数据。 Texture.isReadable 必须为 true

该数组包含逐行排列的像素,从纹理的左下角开始。数组的大小为纹理的宽度 × 高度。

每个像素都是一个 Color32 结构体。

与多次调用 GetPixel 相比,单次调用 GetPixels32 通常速度更快,特别适用于大纹理。

如果 GetPixels32 失败,Unity 会引发异常。当数组包含过多数据时,GetPixels32 可能会失败。

您可以选择传入一个 Color32 结构体数组来避免在每帧分配新内存。如果您要持续读取来自摄像机的图像数据,这样做可以提高性能。数组必须初始化为纹理的尺寸 width * height。如果您没有传入一个数组,Unity 将分配一个数组并返回。

using UnityEngine;

public class Example : MonoBehaviour { WebCamTexture webcamTexture; Color32[] data;

void Start() { // Start web cam feed webcamTexture = new WebCamTexture(); webcamTexture.Play(); data = new Color32[webcamTexture.width * webcamTexture.height]; }

void Update() { webcamTexture.GetPixels32(data); // Do processing of data here. } }