Most visited

Recently visited

Added in API level 8

YuvImage

public class YuvImage
extends Object

java.lang.Object
   ↳ android.graphics.YuvImage


YuvImage contains YUV data and provides a method that compresses a region of the YUV data to a Jpeg. The YUV data should be provided as a single byte array irrespective of the number of image planes in it. Currently only ImageFormat.NV21 and ImageFormat.YUY2 are supported. To compress a rectangle region in the YUV data, users have to specify the region by left, top, width and height.

Summary

Public constructors

YuvImage(byte[] yuv, int format, int width, int height, int[] strides)

Construct an YuvImage.

Public methods

boolean compressToJpeg(Rect rectangle, int quality, OutputStream stream)

Compress a rectangle region in the YuvImage to a jpeg.

int getHeight()
int[] getStrides()
int getWidth()
byte[] getYuvData()
int getYuvFormat()

Inherited methods

From class java.lang.Object

Public constructors

YuvImage

Added in API level 8
YuvImage (byte[] yuv, 
                int format, 
                int width, 
                int height, 
                int[] strides)

Construct an YuvImage.

Parameters
yuv byte: The YUV data. In the case of more than one image plane, all the planes must be concatenated into a single byte array.
format int: The YUV data format as defined in ImageFormat.
width int: The width of the YuvImage.
height int: The height of the YuvImage.
strides int: (Optional) Row bytes of each image plane. If yuv contains padding, the stride of each image must be provided. If strides is null, the method assumes no padding and derives the row bytes by format and width itself.
Throws
IllegalArgumentException if format is not support; width or height <= 0; or yuv is null.

Public methods

compressToJpeg

Added in API level 8
boolean compressToJpeg (Rect rectangle, 
                int quality, 
                OutputStream stream)

Compress a rectangle region in the YuvImage to a jpeg. Only ImageFormat.NV21 and ImageFormat.YUY2 are supported for now.

Parameters
rectangle Rect: The rectangle region to be compressed. The medthod checks if rectangle is inside the image. Also, the method modifies rectangle if the chroma pixels in it are not matched with the luma pixels in it.
quality int: Hint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality.
stream OutputStream: OutputStream to write the compressed data.
Returns
boolean True if the compression is successful.
Throws
IllegalArgumentException if rectangle is invalid; quality is not within [0, 100]; or stream is null.

getHeight

Added in API level 8
int getHeight ()

Returns
int the height of the image.

getStrides

Added in API level 8
int[] getStrides ()

Returns
int[] the number of row bytes in each image plane.

getWidth

Added in API level 8
int getWidth ()

Returns
int the width of the image.

getYuvData

Added in API level 8
byte[] getYuvData ()

Returns
byte[] the YUV data.

getYuvFormat

Added in API level 8
int getYuvFormat ()

Returns
int the YUV format as defined in ImageFormat.

Hooray!