# MPImage


```
public class MPImage implements Closeable
```

<br />

*** ** * ** ***

The wrapper class for image objects.

`https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage` is designed to be an immutable image container, which could be shared cross-platforms.

To construct a `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage`, use the provided builders:

- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/ByteBufferImageBuilder`
- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/BitmapImageBuilder`
- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MediaImageBuilder`

`https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage` uses reference counting to maintain internal storage. When it is created the reference count is 1. Developer can call close to reduce reference count to release internal storage earlier, otherwise Java garbage collection will release the storage eventually.

To extract concrete image, first check `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage.StorageType` and then use the provided extractors:

- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/ByteBufferExtractor`
- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/BitmapExtractor`
- `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MediaImageExtractor`

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/androidx/annotation/IntDef.html(value = ) @https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) public annotation https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage.MPImageFormat` Specifies the image format of an image. |
| `@https://developer.android.com/reference/androidx/annotation/IntDef.html(value = ) @https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) public annotation https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage.StorageType` Specifies the image container type. |

| ### Constants |
|---|---|
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_ALPHA() = 8` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_JPEG() = 9` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_NV12() = 3` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_NV21() = 4` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_RGB() = 2` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_RGBA() = 1` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_UNKNOWN() = 0` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_VEC32F1() = 10` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_VEC32F2() = 11` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_YUV_420_888() = 7` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_YV12() = 5` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#IMAGE_FORMAT_YV21() = 6` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#STORAGE_TYPE_BITMAP() = 1` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#STORAGE_TYPE_BYTEBUFFER() = 2` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#STORAGE_TYPE_IMAGE_PROXY() = 4` |
| `static final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#STORAGE_TYPE_MEDIA_IMAGE() = 3` |

| ### Public fields |
|---|---|
| `final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#height()` |
| `final int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#width()` |

| ### Public methods |
|---|---|
| `synchronized void` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#close()()` Removes a reference that was previously acquired or init. |
| `https://developer.android.com/reference/java/util/List.html<https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImageProperties>` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#getContainedImageProperties()()` Returns a list of supported image properties for this `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage`. |
| `int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#getHeight()()` Returns the height of the image. |
| `int` | `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage#getWidth()()` Returns the width of the image. |

## Constants

### IMAGE_FORMAT_ALPHA

```
public static final int IMAGE_FORMAT_ALPHA = 8
```

### IMAGE_FORMAT_JPEG

```
public static final int IMAGE_FORMAT_JPEG = 9
```

### IMAGE_FORMAT_NV12

```
public static final int IMAGE_FORMAT_NV12 = 3
```

### IMAGE_FORMAT_NV21

```
public static final int IMAGE_FORMAT_NV21 = 4
```

### IMAGE_FORMAT_RGB

```
public static final int IMAGE_FORMAT_RGB = 2
```

### IMAGE_FORMAT_RGBA

```
public static final int IMAGE_FORMAT_RGBA = 1
```

### IMAGE_FORMAT_UNKNOWN

```
public static final int IMAGE_FORMAT_UNKNOWN = 0
```

### IMAGE_FORMAT_VEC32F1

```
public static final int IMAGE_FORMAT_VEC32F1 = 10
```

### IMAGE_FORMAT_VEC32F2

```
public static final int IMAGE_FORMAT_VEC32F2 = 11
```

### IMAGE_FORMAT_YUV_420_888

```
public static final int IMAGE_FORMAT_YUV_420_888 = 7
```

### IMAGE_FORMAT_YV12

```
public static final int IMAGE_FORMAT_YV12 = 5
```

### IMAGE_FORMAT_YV21

```
public static final int IMAGE_FORMAT_YV21 = 6
```

### STORAGE_TYPE_BITMAP

```
public static final int STORAGE_TYPE_BITMAP = 1
```

### STORAGE_TYPE_BYTEBUFFER

```
public static final int STORAGE_TYPE_BYTEBUFFER = 2
```

### STORAGE_TYPE_IMAGE_PROXY

```
public static final int STORAGE_TYPE_IMAGE_PROXY = 4
```

### STORAGE_TYPE_MEDIA_IMAGE

```
public static final int STORAGE_TYPE_MEDIA_IMAGE = 3
```

## Public fields

### height

```
public final int height
```

### width

```
public final int width
```

## Public methods

### close

```
synchronized public void close()
```

Removes a reference that was previously acquired or init.

When `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage` is created, it has 1 reference count.

When the reference count becomes 0, it will release the resource under the hood.

### getContainedImageProperties

```
public List<MPImageProperties> getContainedImageProperties()
```

Returns a list of supported image properties for this `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage`.

Currently `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImage` only support single storage type so the size of return list will always be 1.

| See also |
|---|---|
| `https://developers.google.com/edge/api/mediapipe/java/com/google/mediapipe/framework/image/MPImageProperties` |   |

### getHeight

```
public int getHeight()
```

Returns the height of the image.

### getWidth

```
public int getWidth()
```

Returns the width of the image.