Image Class

Description

Image存储了图像数据,用来表示内存中的图像。

Image以字节数组的方式提供了对原始数据的访问,同时也提供了访问width/height等信息的接口。

在EasyAR Sense的所有版本中,你都可以访问图像数据。

在iOS中可以这样访问

#import <easyar/buffer.oc.h>
#import <easyar/image.oc.h>

easyar_OutputFrame * outputFrame = [outputFrameBuffer peek];
if (outputFrame != nil) {
    easyar_Image * i = [[outputFrame inputFrame] image];
    easyar_Buffer * b = [i buffer];
    char * bytes = calloc([b size], 1);
    memcpy(bytes, [b data], [b size]);
    // use bytes here
    free(bytes);
}

在Android里面,

import cn.easyar.*;

OutputFrame outputFrame = outputFrameBuffer.peek();
if (outputFrame != null) {
    InputFrame inputFrame = outputFrame.inputFrame();
    Image i = inputFrame.image();
    Buffer b = i.buffer();
    byte[] bytes = new byte[b.size()];
    b.copyToByteArray(0, bytes, 0, bytes.length);
    // use bytes here
    b.dispose();
    i.dispose();
    inputFrame.dispose();
    outputFrame.dispose();
}

Constructor

C: void easyar_Image__ctor(easyar_Buffer * buffer, easyar_PixelFormat format, int width, int height, easyar_Image * * Return)
C++17: Image(std::shared_ptr<Buffer> buffer, PixelFormat format, int width, int height)
Traditional C++: Image(Buffer * buffer, PixelFormat format, int width, int height)
Java: public Image(@Nonnull Buffer buffer, int format, int width, int height)
Kotlin: constructor(buffer: Buffer, format: Int, width: Int, height: Int)
Objective-C: + (easyar_Image *) create:(easyar_Buffer *)buffer format:(easyar_PixelFormat)format width:(int)width height:(int)height
Swift: public convenience init(_ buffer: Buffer, _ format: PixelFormat, _ width: Int32, _ height: Int32)
C#: public Image(Buffer buffer, PixelFormat format, int width, int height)

buffer

返回图像中的数据buffer。可以使用 Buffer API访问内部数据。不应对获得的数据 Buffer 的内容进行修改,因为这些内容可能在其他线程被使用。

C: void easyar_Image_buffer(const easyar_Image * This, easyar_Buffer * * Return)
C++17: std::shared_ptr<Buffer> buffer()
Traditional C++: void buffer(Buffer * * Return)
Java: public @Nonnull Buffer buffer()
Kotlin: fun buffer(): Buffer
Objective-C: - (easyar_Buffer *)buffer
Swift: public func buffer() -> Buffer
C#: public virtual Buffer buffer()

format

返回图像格式。

C: easyar_PixelFormat easyar_Image_format(const easyar_Image * This)
C++17: PixelFormat format()
Traditional C++: PixelFormat format()
Java: public int format()
Kotlin: fun format(): Int
Objective-C: - (easyar_PixelFormat)format
Swift: public func format() -> PixelFormat
C#: public virtual PixelFormat format()

width

返回图像宽度。

C: int easyar_Image_width(const easyar_Image * This)
C++17: int width()
Traditional C++: int width()
Java: public int width()
Kotlin: fun width(): Int
Objective-C: - (int)width
Swift: public func width() -> Int32
C#: public virtual int width()

height

返回图像高度。

C: int easyar_Image_height(const easyar_Image * This)
C++17: int height()
Traditional C++: int height()
Java: public int height()
Kotlin: fun height(): Int
Objective-C: - (int)height
Swift: public func height() -> Int32
C#: public virtual int height()

empty

判断是否为空。

C: bool easyar_Image_empty(easyar_Image * This)
C++17: bool empty()
Traditional C++: bool empty()
Java: public boolean empty()
Kotlin: fun empty(): Boolean
Objective-C: - (bool)empty
Swift: public func empty() -> Bool
C#: public virtual bool empty()