# GetPixels32(int)

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

## Definition

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

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

### Parameters

**** (\[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 [Texture2D.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2d/getpixeldata.md) instead.

A single call to `GetPixels32` is usually faster than multiple calls to [Texture2D.GetPixel](/engine/6000.0/script-reference/unityengine/texture2d/getpixel.md), especially for large textures.

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

```csharp
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();
    }
}
```

Additional Resources: [Texture2D.SetPixels](/engine/6000.0/script-reference/unityengine/texture2d/setpixels.md), [Texture2D.GetPixelData](/engine/6000.0/script-reference/unityengine/texture2d/getpixeldata.md), [mipmapCount](/engine/6000.0/script-reference/unityengine/texture/mipmapcount.md).
