# ApplyColorOperation

### Introduction

ApplyColorOperation is a method which can be used to modify an ImageData using the same ColorOperation and Red,Green,Blue values that are present in the [IColorable](https://github.com/flatredball/FlatRedBallDocs/blob/main/frb/docs/index.php) interface which is implemented by common FlatRedball objects such as [Sprite](https://github.com/flatredball/FlatRedBallDocs/blob/main/frb/docs/index.php) and [Text](https://github.com/flatredball/FlatRedBallDocs/blob/main/frb/docs/index.php). ApplyColorOperation modifies the data stored in an ImageData permanently - it cannot be undone.

### Code Example

ApplyColorOperation can be used to modify a texture so that when rendered normally, it will appear the same as a Sprite with the same ColorOperation and Red/Green/Blue values. The following code shows a texture being rendered using a Modulate color operation:

```
 Texture2D texture = FlatRedBallServices.Load<Texture2D>("redball.bmp");
 
 ImageData imageData = ImageData.FromTexture2D(texture);
 
 float red = 0;
 float green = .5f;
 float blue = .5f;
 float alpha = 1;
 
 imageData.ApplyColorOperation(ColorOperation.Modulate, red, green, blue, alpha);
 
 Texture2D modified = imageData.ToTexture2D();
 
 Sprite sprite = SpriteManager.AddSprite(modified);
 
 Sprite originalSprite = SpriteManager.AddSprite("redball.bmp");
 originalSprite.X = 2;
 
 SpriteManager.Camera.BackgroundColor = Color.White;
```

![ImageDataApplyColorOperation.png](/files/E9siPpJkSrrl29EmoMqa)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flatredball.com/flatredball/api/flatredball/graphics/texture/imagedata/applycoloroperation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
