Client API. The Codename One framework your app is built on: this runs on the device, not in a backend.
public final class CameraFrame
- Object
- CameraFrame
A single frame delivered to a FrameListener.
Lifetime: the byte arrays returned by this class are valid only while
FrameListener#onFrame(CameraFrame) is on the stack. After it returns the
framework may reuse or release the underlying buffers. Clone any data you
need to keep.
Nested types
interface CameraFrame.JpegEncoder | Encodes a frame on demand. |
Constructors
Methods
public synchronized byte[] getJpegBytes() | JPEG-encoded bytes for this frame. |
public byte[] getRawBytes() | Raw pixel bytes in the format requested via CameraSessionOptions#frameFormat(FrameFormat). |
public int getWidth() | Pixel width of the frame. |
public int getHeight() | Pixel height of the frame. |
public int getRotationDegrees() | Clockwise rotation in degrees (0, 90, 180, 270) that should be applied to the bytes to display them upright. |
public long getTimestampNanos() | Monotonic timestamp in nanoseconds. |
public FrameFormat getFormat() | Pixel format requested for this frame. |
Inherited methods
Constructor details
CameraFrame
public CameraFrame(byte[] jpegBytes, byte[] rawBytes, int width, int height, int rotationDegrees, long timestampNanos, FrameFormat format)Used by platform implementations.
CameraFrame
public CameraFrame(byte[] jpegBytes, byte[] rawBytes, int width, int height, int rotationDegrees, long timestampNanos, FrameFormat format, CameraFrame.JpegEncoder jpegEncoder)Used by ports that can supply raw frames without eagerly encoding JPEG.
The encoder is invoked at most once after a successful encoding, when
#getJpegBytes() is first called. Existing eager callers need no encoder.Method details
getJpegBytes
public synchronized byte[] getJpegBytes()JPEG-encoded bytes for this frame. Always non-null regardless of the
requested
FrameFormat; use this when encoded image data is needed.
VisionImage#fromCameraFrame(CameraFrame) instead selects the raw
buffer for NV21 and RGBA8888 frames. A raw frame may encode its JPEG
lazily on the first call; subsequent calls return the cached bytes.getRawBytes
public byte[] getRawBytes()Raw pixel bytes in the format requested via
CameraSessionOptions#frameFormat(FrameFormat). This is null for
JPEG requests and may also be null when the current port cannot
expose the requested raw format. In that case
getJpegBytes() remains available as a fallback.getWidth
public int getWidth()Pixel width of the frame.
getHeight
public int getHeight()Pixel height of the frame.
getRotationDegrees
public int getRotationDegrees()Clockwise rotation in degrees (0, 90, 180, 270) that should be applied
to the bytes to display them upright.
getTimestampNanos
public long getTimestampNanos()Monotonic timestamp in nanoseconds. Useful for measuring inter-frame
intervals.
getFormat
public FrameFormat getFormat()Pixel format requested for this frame. A non-JPEG value describes
getRawBytes() when that buffer is available; ports that cannot
expose raw pixels may return null there while still reporting
the requested format. JPEG bytes returned by getJpegBytes()
are always JPEG-encoded regardless of this value.