# MLImageType

The image type describes image features.

## Creating the Type

The image type can be created with image information, or by inspecting an [`MLFeatureType`](/unity/api/mlfeaturetype.md):

### From Image Info

```csharp
/// <summary>
/// Create an image feature type.
/// </summary>
/// <param name="width">Image width.</param>
/// <param name="height">Image height.</param>
/// <param name="channels">Image channels.</param>
MLImageType (int width, int height, int channels = 3);
```

INCOMPLETE.

```csharp
/// <summary>
/// Create an image feature type.
/// </summary>
/// <param name="width">Image width.</param>
/// <param name="height">Image height.</param>
/// <param name="type">Image data type.</param>
MLImageType (int width, int height, Type type);
```

INCOMPLETE.

```csharp
/// <summary>
/// Create an image feature type.
/// This constructor assumes interleaved pixel buffers.
/// </summary>
/// <param name="width">Image width.</param>
/// <param name="height">Image height.</param>
/// <param name="channels">Image channels.</param>
/// <param name="type">Image data type.</param>
MLImageType (int width, int height, int channels, Type type);
```

INCOMPLETE.

```csharp
/// <summary>
/// Create an image feature type.
/// </summary>
/// <param name="shape">Image feature shape.</param>
/// <param name="type">Image data type.</param>
/// <param name="name">Feature name.</param>
MLImageType (int[] shape, Type type, string name = null);
```

### From a Feature Type

```csharp
/// <summary>
/// Get the corresponding image type for a given feature type.
/// </summary>
/// <param name="type">Input type.</param>
/// <returns>Corresponding image type or `null` if input type is not an image type.</returns>
static MLImageType FromType (in MLFeatureType type);
```

INCOMPLETE.

## Inspecting the Type

```csharp
/// <summary>
/// Feature name.
/// </summary>
string name { get; }

/// <summary>
/// Feature data type.
/// This will typically be a numeric type.
/// </summary>
Type dataType { get; }
```

Refer to the [`MLFeatureType`](/unity/api/mlfeaturetype.md) class for more information.

## Inspecting the Image

The feature type reports information about the image it refers to:

### Image Width

```csharp
/// <summary>
/// Image width.
/// </summary>
int width { get; }
```

INCOMPLETE.

### Image Height

```csharp
/// <summary>
/// Image height.
/// </summary>
int height { get; }
```

INCOMPLETE.

### Image Channels

```csharp
/// <summary>
/// Image channels.
/// </summary>
int channels { get; }
```

INCOMPLETE.

{% hint style="info" %}
The channel count is usually 1 for greyscale images, 3 for RGB images, or 4 for RGBA images.
{% endhint %}

### Pixel Layout

```csharp
/// <summary>
/// Whether the image is interleaved or planar.
/// </summary>
bool interleaved { get; }
```

The image type reports the pixel layout of the image. The pixel layout is inferred from the [`shape`](/unity/api/mlfeaturetype/mlarraytype.md#inspecting-the-shape) of the type. If the `channels` dimension is last, then the image is `interleaved`; otherwise, the image is planar.


---

# 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.natml.ai/unity/api/mlfeaturetype/mlimagetype.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.
