miplevel | 要获取的 mipmap 级别。范围为 0 到纹理的 Texture.mipmapCount。默认值为 0 。 |
Color32[] 包含像素颜色的数组。
获取 mipmap 级别作为 Color32 结构体的像素颜色数据。
此方法从 CPU 内存中的纹理获取像素数据。 Texture.isReadable 必须为 true
。
该数组按行存储像素,从纹理的左下角开始。数组的大小为 mipmap 级别宽度×高度。
每个像素都是一个 Color32 结构体。 GetPixels32
可能比某些其他纹理方法慢,因为它将纹理使用的格式转换为 Color32。要更快地获取像素数据,请改用 GetPixelData。
对 GetPixels32
的单个调用通常比对 GetPixel 的多次调用更快,尤其是在大型纹理的情况下。
如果 GetPixels32
失败,Unity 会抛出异常。如果数组包含过多的数据, GetPixels32
可能会失败。对于非常大的纹理,请改用 GetPixelData 或 GetRawTextureData。
using UnityEngine;
public class Texture2DExample : MonoBehaviour { public Texture2D source; public Texture2D destination;
void Start() { // Get a copy of the color data from the source Texture2D, in lower-precision int format. // Each element in the array represents the color data for an individual pixel. int sourceMipLevel = 0; Color32[] pixels = source.GetPixels32(sourceMipLevel);
// If required, manipulate the pixels before applying them to the destination Texture2D. // This example code reverses the array, which rotates the image 180 degrees. System.Array.Reverse(pixels, 0, pixels.Length);
// Set the pixels of the destination Texture2D. int destinationMipLevel = 0; destination.SetPixels32(pixels, destinationMipLevel);
// Apply changes to the destination Texture2D, which uploads its data to the GPU. destination.Apply(); } }
其他资源:SetPixels、GetPixelData、mipmapCount。