/* * 作成日: 2008/05/07 */ package jp.ac.fit.asura.nao; import java.nio.ByteBuffer; import java.nio.IntBuffer; import jp.ac.fit.asura.nao.Camera.PixelFormat; /** * カメラから取得した画像バッファのインターフェイス. * * 画像の形式は{@link #getPixelFormat}で与えられます. * * 画像は何らかのバッファに格納されています. どの種類のバッファに格納されているかは{@link BufferType}で示されます. * * ピクセルの格納方式にはPacked formatとPlanar formatがあり、Packed formatでは * {@link BufferType#INT}と{@link BufferType#BYTES}が、Planar formatでは * {@link BufferType#BYTES}がサポートされています. * * * * @author $Author: sey $ * * @version $Id: Image.java 709 2008-11-23 07:40:31Z sey $ * */ public interface Image { public enum BufferType { BYTES, INT } /** * この画像の画像バッファのタイプを返します. * * @return 画像バッファのタイプ. {@link BufferType#BYTES}の場合は{@link #getByteBuffer()} * が、{@link BufferType#INT}の場合は{@link #getIntBuffer()}が利用可能. */ public BufferType getBufferType(); public ByteBuffer getByteBuffer() throws UnsupportedOperationException; public IntBuffer getIntBuffer() throws UnsupportedOperationException; /** * この画像のピクセル形式を返します. * * @return */ public PixelFormat getPixelFormat(); /** * この画像を撮影した時間をミリ秒単位で返します. * * @return 撮影した時間. */ public long getTimestamp(); /** * この画像の縦方向のピクセル数を返します. * * @return 縦方向のピクセル数 */ public int getHeight(); /** * この画像の横方向のピクセル数を返します. * * @return 横方向のピクセル数 */ public int getWidth(); /** * この画像が保持するバッファを開放し、再利用可能な状態にします. * * この呼び出しあと、この画像の保持するバッファの内容は不定となります. * * 画像を再び使用可能な状態にするには、{@link Camera#updateImage(Image)}を呼び出す必要があります. */ public void dispose(); }