# CompressTexture

> Compress a texture.

## Definition

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

## CompressTexture(Texture2D, TextureFormat, int)

Compress a texture.

```csharp
public static void CompressTexture(Texture2D texture, TextureFormat format, int quality)
```

### Parameters

**** (\[Texture2D]\(/engine/6000.7/script-reference/unityengine/texture2d)): **** (\[TextureFormat]\(/engine/6000.7/script-reference/unityengine/textureformat)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;

### Remarks

Use this function to explicitly compress a texture into specified format.

Unity does not support the compression of textures into signed EAC formats. Additionally, only the following formats are supported if the texture to compress uses non-power of two (NPOT) dimensions and has a mipmap:

* Crunch formats
* BC4
* BC5
* ASTC formats

The texture is left unchanged if Unity is unable to compress it.

If you want to do texture compression in-game, use [Texture2D.Compress](/engine/6000.7/script-reference/unityengine/texture2d/compress.md) function, which will use faster but lower quality DXT1/DXT5 (also known as BC1/BC3) or ETC/EAC compression.

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class CompressTextureExample : AssetPostprocessor
{
    // Automatically Compress all imported textures to the project to RGB24
    void OnPostprocessTexture(Texture2D t)
    {
        EditorUtility.CompressTexture(t, TextureFormat.RGB24, TextureCompressionQuality.Normal);
    }
}
```

## CompressTexture(Texture2D, TextureFormat, TextureCompressionQuality)

Compress a texture.

```csharp
public static void CompressTexture(Texture2D texture, TextureFormat format, TextureCompressionQuality quality)
```

### Parameters

**** (\[Texture2D]\(/engine/6000.7/script-reference/unityengine/texture2d)): **** (\[TextureFormat]\(/engine/6000.7/script-reference/unityengine/textureformat)): **** (\[TextureCompressionQuality]\(/engine/6000.7/script-reference/unityeditor/texturecompressionquality)):&#x20;

### Remarks

Use this function to explicitly compress a texture into specified format.

Unity does not support the compression of textures into signed EAC formats. Additionally, only the following formats are supported if the texture to compress uses non-power of two (NPOT) dimensions and has a mipmap:

* Crunch formats
* BC4
* BC5
* ASTC formats

The texture is left unchanged if Unity is unable to compress it.

If you want to do texture compression in-game, use [Texture2D.Compress](/engine/6000.7/script-reference/unityengine/texture2d/compress.md) function, which will use faster but lower quality DXT1/DXT5 (also known as BC1/BC3) or ETC/EAC compression.

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class CompressTextureExample : AssetPostprocessor
{
    // Automatically Compress all imported textures to the project to RGB24
    void OnPostprocessTexture(Texture2D t)
    {
        EditorUtility.CompressTexture(t, TextureFormat.RGB24, TextureCompressionQuality.Normal);
    }
}
```
