# GetPixels32

> Gets the pixel color data for a mipmap level of a slice as Color32 structs.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## GetPixels32(int, int)

Gets the pixel color data for a mipmap level of a slice as [Color32](/engine/6000.0/script-reference/unityengine/color32.md) structs.

```csharp
public Color32[] GetPixels32(int arrayElement, int miplevel)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The array slice to read pixel data from.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The mipmap level to get. The range is `0` through the texture's [Texture.mipmapCount](/engine/6000.0/script-reference/unityengine/texture/mipmapcount.md). The default value is `0`.

### Returns

| Type                                                                  | Description                              |
| --------------------------------------------------------------------- | ---------------------------------------- |
| [Color32\[\]](/engine/6000.0/script-reference/unityengine/color32.md) | An array that contains the pixel colors. |

### Remarks

This method gets pixel data from the texture in CPU memory. [Texture.isReadable](/engine/6000.0/script-reference/unityengine/texture/isreadable.md) must be `true`.

The array contains the pixels row by row, starting at the bottom left of the texture. The size of the array is the width × height of the mipmap level.

Each pixel is a [Color32](/engine/6000.0/script-reference/unityengine/color32.md) struct. `GetPixels32` might be slower than some other texture methods because it converts the format the texture uses into [Color32](/engine/6000.0/script-reference/unityengine/color32.md). To get pixel data more quickly, use [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md) instead.

If `GetPixels32` fails, Unity throws an exception. `GetPixels32` might fail if the array contains too much data. Use [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md) instead for very large textures.

```csharp
using UnityEngine;

public class Texture2DArrayExample : MonoBehaviour
{
    public Texture2DArray source;
    public Texture2DArray destination;

    void Start()
    {
        // Get a copy of the color data from the source Texture2DArray, in lower-precision int format.
        // Each element in the array represents the color data for an individual pixel.
        int sourceSlice = 0;
        int sourceMipLevel = 0;
        Color32[] pixels = source.GetPixels32(sourceSlice, sourceMipLevel);

        // If required, manipulate the pixels before applying them to the destination Texture2DArray.
        // 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 Texture2DArray.
        int destinationSlice = 0;
        int destinationMipLevel = 0;
        destination.SetPixels32(pixels, destinationSlice, destinationMipLevel);

        // Apply changes to the destination Texture2DArray, which uploads its data to the GPU.
        destination.Apply();
    }
}
```

Additional Resources: [Texture2DArray.GetPixels](/engine/6000.0/script-reference/unityengine/texture2darray/getpixels.md), [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md), [Texture2DArray.SetPixels32](/engine/6000.0/script-reference/unityengine/texture2darray/setpixels32.md), [Graphics.CopyTexture](/engine/6000.0/script-reference/unityengine/graphics/copytexture.md).

## GetPixels32(int)

Gets the pixel color data for a mipmap level of a slice as [Color32](/engine/6000.0/script-reference/unityengine/color32.md) structs.

```csharp
public Color32[] GetPixels32(int arrayElement)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The array slice to read pixel data from.

### Returns

| Type                                                                  | Description                              |
| --------------------------------------------------------------------- | ---------------------------------------- |
| [Color32\[\]](/engine/6000.0/script-reference/unityengine/color32.md) | An array that contains the pixel colors. |

### Remarks

This method gets pixel data from the texture in CPU memory. [Texture.isReadable](/engine/6000.0/script-reference/unityengine/texture/isreadable.md) must be `true`.

The array contains the pixels row by row, starting at the bottom left of the texture. The size of the array is the width × height of the mipmap level.

Each pixel is a [Color32](/engine/6000.0/script-reference/unityengine/color32.md) struct. `GetPixels32` might be slower than some other texture methods because it converts the format the texture uses into [Color32](/engine/6000.0/script-reference/unityengine/color32.md). To get pixel data more quickly, use [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md) instead.

If `GetPixels32` fails, Unity throws an exception. `GetPixels32` might fail if the array contains too much data. Use [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md) instead for very large textures.

```csharp
using UnityEngine;

public class Texture2DArrayExample : MonoBehaviour
{
    public Texture2DArray source;
    public Texture2DArray destination;

    void Start()
    {
        // Get a copy of the color data from the source Texture2DArray, in lower-precision int format.
        // Each element in the array represents the color data for an individual pixel.
        int sourceSlice = 0;
        int sourceMipLevel = 0;
        Color32[] pixels = source.GetPixels32(sourceSlice, sourceMipLevel);

        // If required, manipulate the pixels before applying them to the destination Texture2DArray.
        // 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 Texture2DArray.
        int destinationSlice = 0;
        int destinationMipLevel = 0;
        destination.SetPixels32(pixels, destinationSlice, destinationMipLevel);

        // Apply changes to the destination Texture2DArray, which uploads its data to the GPU.
        destination.Apply();
    }
}
```

Additional Resources: [Texture2DArray.GetPixels](/engine/6000.0/script-reference/unityengine/texture2darray/getpixels.md), [Texture2DArray.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2darray/getpixeldata.md), [Texture2DArray.SetPixels32](/engine/6000.0/script-reference/unityengine/texture2darray/setpixels32.md), [Graphics.CopyTexture](/engine/6000.0/script-reference/unityengine/graphics/copytexture.md).
