# GetPixels

> Gets the pixel color data for a mipmap level of a face as Color structs.

## Definition

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

## GetPixels(CubemapFace, int)

Gets the pixel color data for a mipmap level of a face as [Color](/engine/6000.7/script-reference/unityengine/color.md) structs.

```csharp
public Color[] GetPixels(CubemapFace face, int miplevel)
```

### Parameters

**** (\[CubemapFace]\(/engine/6000.7/script-reference/unityengine/cubemapface)): The [CubemapFace](/engine/6000.7/script-reference/unityengine/cubemapface.md) to read 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.7/script-reference/unityengine/texture/mipmapcount.md). The default value is `0`.

### Returns

| Type                                                              | Description                              |
| ----------------------------------------------------------------- | ---------------------------------------- |
| [Color\[\]](/engine/6000.7/script-reference/unityengine/color.md) | An array that contains the pixel colors. |

### Remarks

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

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

Each pixel is a [Color](/engine/6000.7/script-reference/unityengine/color.md) struct. `GetPixels` might be slower than some other texture methods because it converts the format the texture uses into [Color](/engine/6000.7/script-reference/unityengine/color.md). `GetPixels` also needs to decompress compressed textures, and use memory to store the decompressed area. To get pixel data more quickly, use [Cubemap.GetPixelData](/engine/6000.7/script-reference/unityengine/cubemap/getpixeldata.md) instead.

A single call to `GetPixels` is usually faster than multiple calls to [Cubemap.GetPixel](/engine/6000.7/script-reference/unityengine/cubemap/getpixel.md), especially for large textures.

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

You can't use `GetPixel` with textures that use Crunch texture compression.

```csharp
using UnityEngine;

public class CubemapExample : MonoBehaviour
{
    public Cubemap source;
    public Cubemap destination;

    void Start()
    {
        // Get a copy of the color data from the source Cubemap, in high-precision float format.
        // Each element in the array represents the color data for an individual pixel.
        CubemapFace sourceFace = CubemapFace.PositiveX;
        int sourceMipLevel = 0;
        Color[] pixels = source.GetPixels(sourceFace, sourceMipLevel);

        // If required, manipulate the pixels before applying them to the destination texture.
        // 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 Cubemap.
        CubemapFace destinationFace = CubemapFace.PositiveX;
        int destinationMipLevel = 0;
        destination.SetPixels(pixels, destinationFace, destinationMipLevel);

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

Additional Resources: [Cubemap.SetPixels](/engine/6000.7/script-reference/unityengine/cubemap/setpixels.md), [Cubemap.GetPixelData](/engine/6000.7/script-reference/unityengine/cubemap/getpixeldata.md), [Texture.mipmapCount](/engine/6000.7/script-reference/unityengine/texture/mipmapcount.md).

## GetPixels(CubemapFace)

Gets the pixel color data for a mipmap level of a face as [Color](/engine/6000.7/script-reference/unityengine/color.md) structs.

```csharp
public Color[] GetPixels(CubemapFace face)
```

### Parameters

**** (\[CubemapFace]\(/engine/6000.7/script-reference/unityengine/cubemapface)): The [CubemapFace](/engine/6000.7/script-reference/unityengine/cubemapface.md) to read from.

### Returns

| Type                                                              | Description                              |
| ----------------------------------------------------------------- | ---------------------------------------- |
| [Color\[\]](/engine/6000.7/script-reference/unityengine/color.md) | An array that contains the pixel colors. |

### Remarks

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

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

Each pixel is a [Color](/engine/6000.7/script-reference/unityengine/color.md) struct. `GetPixels` might be slower than some other texture methods because it converts the format the texture uses into [Color](/engine/6000.7/script-reference/unityengine/color.md). `GetPixels` also needs to decompress compressed textures, and use memory to store the decompressed area. To get pixel data more quickly, use [Cubemap.GetPixelData](/engine/6000.7/script-reference/unityengine/cubemap/getpixeldata.md) instead.

A single call to `GetPixels` is usually faster than multiple calls to [Cubemap.GetPixel](/engine/6000.7/script-reference/unityengine/cubemap/getpixel.md), especially for large textures.

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

You can't use `GetPixel` with textures that use Crunch texture compression.

```csharp
using UnityEngine;

public class CubemapExample : MonoBehaviour
{
    public Cubemap source;
    public Cubemap destination;

    void Start()
    {
        // Get a copy of the color data from the source Cubemap, in high-precision float format.
        // Each element in the array represents the color data for an individual pixel.
        CubemapFace sourceFace = CubemapFace.PositiveX;
        int sourceMipLevel = 0;
        Color[] pixels = source.GetPixels(sourceFace, sourceMipLevel);

        // If required, manipulate the pixels before applying them to the destination texture.
        // 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 Cubemap.
        CubemapFace destinationFace = CubemapFace.PositiveX;
        int destinationMipLevel = 0;
        destination.SetPixels(pixels, destinationFace, destinationMipLevel);

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

Additional Resources: [Cubemap.SetPixels](/engine/6000.7/script-reference/unityengine/cubemap/setpixels.md), [Cubemap.GetPixelData](/engine/6000.7/script-reference/unityengine/cubemap/getpixeldata.md), [Texture.mipmapCount](/engine/6000.7/script-reference/unityengine/texture/mipmapcount.md).
