to top
Android APIs
public class

YuvImage

extends Object
java.lang.Object
   ↳ android.graphics.YuvImage

Class Overview

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()
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

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

Added in API level 8

Construct an YuvImage.

Parameters
yuv The YUV data. In the case of more than one image plane, all the planes must be concatenated into a single byte array.
format The YUV data format as defined in ImageFormat.
width The width of the YuvImage.
height The height of the YuvImage.
strides (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

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

Added in API level 8

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

Parameters
rectangle 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 Hint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality.
stream OutputStream to write the compressed data.
Returns
  • True if the compression is successful.
Throws
IllegalArgumentException if rectangle is invalid; quality is not within [0, 100]; or stream is null.

public int getHeight ()

Added in API level 8

Returns
  • the height of the image.

public int[] getStrides ()

Added in API level 8

Returns
  • the number of row bytes in each image plane.

public int getWidth ()

Added in API level 8

Returns
  • the width of the image.

public byte[] getYuvData ()

Added in API level 8

Returns
  • the YUV data.

public int getYuvFormat ()

Added in API level 8

Returns