MlImage

public class MlImage extends Object
implements Closeable

Wraps image data for on-device machine learning (ODML) usages.

MlImage is designed to be an immutable image container, which could be shared cross-platforms, among different Google ODML frameworks(TFLite Support, MLKit).

It is a common abstraction image that could help to chain different frameworks that adapts MlImage together.

To construct an MlImage, use the provided builders:

MlImage 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 MlImage.StorageType and then use the provided extractors:

In future release, MlImage will support internal conversion(e.g. Bitmap -> ByteBuffer) and multiple storages.

Nested Class Summary

@interface MlImage.ImageFormat Specifies the image format of an image. 
class MlImage.Internal Advanced API access for MlImage
@interface MlImage.StorageType Specifies the image container type. 

Constant Summary

int IMAGE_FORMAT_ALPHA
int IMAGE_FORMAT_JPEG
int IMAGE_FORMAT_NV12
int IMAGE_FORMAT_NV21
int IMAGE_FORMAT_RGB
int IMAGE_FORMAT_RGBA
int IMAGE_FORMAT_UNKNOWN
int IMAGE_FORMAT_YUV_420_888
int IMAGE_FORMAT_YV12
int IMAGE_FORMAT_YV21
int STORAGE_TYPE_BITMAP
int STORAGE_TYPE_BYTEBUFFER
int STORAGE_TYPE_MEDIA_IMAGE

Public Method Summary

synchronized void
close()
Removes a reference that was previously acquired or init.
List<ImageProperties>
getContainedImageProperties()
Returns a list of supported image properties for this MlImage.
int
getHeight()
Returns the height of the image.
MlImage.Internal
getInternal()
Gets MlImage.Internal object which contains internal APIs.
int
getRotation()
Returns the rotation value attached to the image.
int
getWidth()
Returns the width of the image.

Inherited Method Summary

Constants

public static final int IMAGE_FORMAT_ALPHA

Constant Value: 8

public static final int IMAGE_FORMAT_JPEG

Constant Value: 9

public static final int IMAGE_FORMAT_NV12

Constant Value: 3

public static final int IMAGE_FORMAT_NV21

Constant Value: 4

public static final int IMAGE_FORMAT_RGB

Constant Value: 2

public static final int IMAGE_FORMAT_RGBA

Constant Value: 1

public static final int IMAGE_FORMAT_UNKNOWN

Constant Value: 0

public static final int IMAGE_FORMAT_YUV_420_888

Constant Value: 7

public static final int IMAGE_FORMAT_YV12

Constant Value: 5

public static final int IMAGE_FORMAT_YV21

Constant Value: 6

public static final int STORAGE_TYPE_BITMAP

Constant Value: 1

public static final int STORAGE_TYPE_BYTEBUFFER

Constant Value: 2

public static final int STORAGE_TYPE_MEDIA_IMAGE

Constant Value: 3

Public Methods

public synchronized void close ()

Removes a reference that was previously acquired or init.

When MlImage is created, it has 1 reference count.

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

public List<ImageProperties> getContainedImageProperties ()

Returns a list of supported image properties for this MlImage.

Currently MlImage only support single storage type so the size of return list will always be 1.

See Also

public int getHeight ()

Returns the height of the image.

public MlImage.Internal getInternal ()

Gets MlImage.Internal object which contains internal APIs.

public int getRotation ()

Returns the rotation value attached to the image. Rotation value will be 0, 90, 180, 270.

public int getWidth ()

Returns the width of the image.