Java源码示例:com.ochafik.lang.jnaerator.runtime.NativeSize
示例1
private synchronized byte doWrite(Pointer bufPtr, NativeSize num) {
try {
assertWritable();
initRandomAccessIfNecessary();
int size = num.intValue();
ByteBuffer buf = bufPtr.getByteBuffer(0, size);
long numWritten = m_chan.write(buf);
if ( numWritten!=size ) {
throw new IOException("Not all bytes written");
}
return 1;
} catch ( Exception e ) {
handleError("writing", e);
return 0;
}
}
示例2
private synchronized byte doRead(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
try {
initStreamIfNecessary();
if ( m_eof ) {
read.setValue(new NativeSize(0));
return 1;
}
int size = num.intValue();
ByteBuffer buf = bufPtr.getByteBuffer(0, size);
int numRead = m_chan.read(buf);
if ( numRead<=0 ) {
// reached EOF
m_eof=true;
numRead=0;
}
read.setValue(new NativeSize(numRead));
return 1;
} catch ( Exception e ) {
s_log.error("Error accessing " + m_src.getDescription(), e);
return 0;
}
}
示例3
private synchronized byte doSkip(NativeSize num, NativeSizeByReference skipped) {
try {
initStreamIfNecessary();
if ( m_eof ) {
skipped.setValue(new NativeSize(0));
return 1;
}
long size = num.longValue();
long numSkipped = m_stream.skip(size);
// InputStream just keeps skipping at EOF
// Need to check if there are any bytes, or it could skip forever
int next = m_stream.read();
if ( next==-1 ) {
m_eof = true;
} else {
m_stream.unread(next);
}
skipped.setValue(new NativeSize(numSkipped));
return 1;
} catch ( Exception e ) {
s_log.error("Error accessing " + m_src.getDescription(), e);
return 0;
}
}
示例4
/**
* Test of TessBaseAPIInit4 method, of class TessAPI.
*/
@Test
public void testTessBaseAPIInit4() {
logger.info("TessBaseAPIInit4");
int oem = TessOcrEngineMode.OEM_DEFAULT;
PointerByReference configs = null;
int configs_size = 0;
// disable loading dictionaries
String[] args = new String[]{"load_system_dawg", "load_freq_dawg"};
StringArray sarray = new StringArray(args);
PointerByReference vars_vec = new PointerByReference();
vars_vec.setPointer(sarray);
args = new String[]{"F", "F"};
sarray = new StringArray(args);
PointerByReference vars_values = new PointerByReference();
vars_values.setPointer(sarray);
NativeSize vars_vec_size = new NativeSize(args.length);
int expResult = 0;
int result = api.TessBaseAPIInit4(handle, datapath, language, oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, FALSE);
assertEquals(expResult, result);
}
示例5
/**
* Test of TessBaseAPIInit4 method, of class TessAPI1.
*/
@Test
public void testTessBaseAPIInit4() {
logger.info("TessBaseAPIInit4");
int oem = TessOcrEngineMode.OEM_DEFAULT;
PointerByReference configs = null;
int configs_size = 0;
// disable loading dictionaries
String[] args = new String[]{"load_system_dawg", "load_freq_dawg"};
StringArray sarray = new StringArray(args);
PointerByReference vars_vec = new PointerByReference();
vars_vec.setPointer(sarray);
args = new String[]{"F", "F"};
sarray = new StringArray(args);
PointerByReference vars_values = new PointerByReference();
vars_values.setPointer(sarray);
NativeSize vars_vec_size = new NativeSize(args.length);
int expResult = 0;
int result = TessAPI1.TessBaseAPIInit4(handle, datapath, language, oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, FALSE);
assertEquals(expResult, result);
}
示例6
private void buildReadCallback() {
m_callbacks.readCallback = new MR4CRandomAccessFileReadPtr() {
public byte apply(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
return doRead(bufPtr, num, read);
}
};
}
示例7
private void buildWriteCallback() {
m_callbacks.writeCallback = new MR4CRandomAccessFileWritePtr() {
public byte apply(Pointer bufPtr, NativeSize num) {
return doWrite(bufPtr, num);
}
};
}
示例8
private void buildSetLocationCallback() {
m_callbacks.setLocationCallback = new MR4CRandomAccessFileSetLocationPtr() {
public byte apply(NativeSize loc) {
return doSetLocation(loc);
}
};
}
示例9
private void buildSetLocationFromEndCallback() {
m_callbacks.setLocationFromEndCallback = new MR4CRandomAccessFileSetLocationPtr() {
public byte apply(NativeSize loc) {
return doSetLocationFromEnd(loc);
}
};
}
示例10
private void buildSkipForwardCallback() {
m_callbacks.skipForwardCallback = new MR4CRandomAccessFileSetLocationPtr() {
public byte apply(NativeSize loc) {
return doSkipForward(loc);
}
};
}
示例11
private void buildSkipBackwardCallback() {
m_callbacks.skipBackwardCallback = new MR4CRandomAccessFileSetLocationPtr() {
public byte apply(NativeSize loc) {
return doSkipBackward(loc);
}
};
}
示例12
private void buildSetSizeCallback() {
m_callbacks.setSizeCallback = new MR4CRandomAccessFileSetSizePtr() {
public byte apply(NativeSize size) {
return doSetSize(size);
}
};
}
示例13
private synchronized byte doRead(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
try {
initRandomAccessIfNecessary();
int size = num.intValue();
ByteBuffer buf = bufPtr.getByteBuffer(0, size);
int numRead = m_chan.read(buf);
read.setValue(new NativeSize(numRead));
return 1;
} catch ( Exception e ) {
handleError("reading", e);
return 0;
}
}
示例14
private synchronized byte doGetLocation(NativeSizeByReference loc) {
try {
initRandomAccessIfNecessary();
long location = m_chan.position();
loc.setValue(new NativeSize(location));
return 1;
} catch ( Exception e ) {
handleError("getting location", e);
return 0;
}
}
示例15
private synchronized byte doSetLocation(NativeSize loc) {
try {
initRandomAccessIfNecessary();
long location = loc.longValue();
m_chan.position(location);
return 1;
} catch ( Exception e ) {
handleError("setting location", e);
return 0;
}
}
示例16
private synchronized byte doSetLocationFromEnd(NativeSize loc) {
try {
initRandomAccessIfNecessary();
long location = loc.longValue();
m_chan.position(m_chan.size()-location);
return 1;
} catch ( Exception e ) {
handleError("setting location from end", e);
return 0;
}
}
示例17
private synchronized byte doSkipForward(NativeSize loc) {
try {
initRandomAccessIfNecessary();
long location = loc.longValue();
m_chan.position(m_chan.position()+location);
return 1;
} catch ( Exception e ) {
handleError("skipping forward", e);
return 0;
}
}
示例18
private synchronized byte doSkipBackward(NativeSize loc) {
try {
initRandomAccessIfNecessary();
long location = loc.longValue();
m_chan.position(m_chan.position()-location);
return 1;
} catch ( Exception e ) {
handleError("skipping backward", e);
return 0;
}
}
示例19
private synchronized byte doGetSize(NativeSizeByReference size) {
try {
initRandomAccessIfNecessary();
size.setValue(new NativeSize(m_chan.size()));
return 1;
} catch ( Exception e ) {
handleError("getting size", e);
return 0;
}
}
示例20
private synchronized byte doSetSize(NativeSize size) {
try {
assertWritable();
initRandomAccessIfNecessary();
m_randFile.setLength(size.longValue());
return 1;
} catch ( Exception e ) {
handleError("setting size", e);
return 0;
}
}
示例21
private void buildReadCallback() {
m_callbacks.readCallback = new MR4CDataSourceReadPtr() {
public byte apply(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
return doRead(bufPtr, num, read);
}
};
}
示例22
private void buildSkipCallback() {
m_callbacks.skipCallback = new MR4CDataSourceSkipPtr() {
public byte apply(NativeSize num, NativeSizeByReference skipped) {
return doSkip(num, skipped);
}
};
}
示例23
private synchronized byte doGetSize(NativeSizeByReference size) {
try {
initSizeIfNecessary();
size.setValue(new NativeSize(m_size));
return 1;
} catch ( Exception e ) {
s_log.error("Error accessing " + m_src.getDescription(), e);
return 0;
}
}
示例24
private void buildWriteCallback() {
m_callbacks.writeCallback = new MR4CDataSinkWritePtr() {
public byte apply(Pointer buf, NativeSize num) {
return doWrite(buf, num);
}
};
}
示例25
private synchronized byte doWrite(Pointer bufPtr, NativeSize num) {
try {
initStreamIfNecessary();
int size = num.intValue();
ByteBuffer buf = bufPtr.getByteBuffer(0, size);
int written = m_chan.write(buf);
if ( written!=size ) {
throw new IOException(String.format("Expected %d bytes to be written, only wrote %d bytes", size, written));
}
return (byte)1;
} catch ( Exception e ) {
s_log.error("Error writing to " + m_sink.getDescription(), e);
return (byte)0;
}
}
示例26
/**
* @param data C type : void*<br>
* @param create C type : create_callback*<br>
* @param destroy C type : destroy_callback*<br>
* @param handleEvents C type : handleEvents_callback*<br>
* @param getDisplayFrameBuffer C type : getDisplayFrameBuffer_callback*<br>
* @param getDisplaySizeOverride C type : getDisplaySizeOverride_callback*
*/
public OSVR_OpenGLToolkitFunctions(NativeSize size, Pointer data, OSVR_OpenGLToolkitFunctions.create_callback create, OSVR_OpenGLToolkitFunctions.destroy_callback destroy, OSVR_OpenGLToolkitFunctions.handleEvents_callback handleEvents, OSVR_OpenGLToolkitFunctions.getDisplayFrameBuffer_callback getDisplayFrameBuffer, OSVR_OpenGLToolkitFunctions.getDisplaySizeOverride_callback getDisplaySizeOverride) {
super();
this.size = size;
this.data = data;
this.create = create;
this.destroy = destroy;
this.handleEvents = handleEvents;
this.getDisplayFrameBuffer = getDisplayFrameBuffer;
this.getDisplaySizeOverride = getDisplaySizeOverride;
}
示例27
/**
* Test of ResultRenderer method, of class TessAPI.
*
* @throws java.lang.Exception
*/
@Test
public void testResultRenderer() throws Exception {
logger.info("TessResultRenderer");
String image = String.format("%s/%s", this.testResourcesDataPath, "eurotext.tif");
String output = "capi-test.txt";
int set_only_init_params = FALSE;
int oem = TessOcrEngineMode.OEM_DEFAULT;
PointerByReference configs = null;
int configs_size = 0;
String[] params = {"load_system_dawg", "tessedit_char_whitelist"};
String vals[] = {"F", ""}; //0123456789-.IThisalotfpnex
PointerByReference vars_vec = new PointerByReference();
vars_vec.setPointer(new StringArray(params));
PointerByReference vars_values = new PointerByReference();
vars_values.setPointer(new StringArray(vals));
NativeSize vars_vec_size = new NativeSize(params.length);
api.TessBaseAPISetOutputName(handle, output);
int rc = api.TessBaseAPIInit4(handle, datapath, language,
oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, set_only_init_params);
if (rc != 0) {
api.TessBaseAPIDelete(handle);
logger.error("Could not initialize tesseract.");
return;
}
String outputbase = "target/test-classes/test-results/ResultRenderer";
TessResultRenderer renderer = api.TessHOcrRendererCreate(outputbase);
api.TessResultRendererInsert(renderer, api.TessBoxTextRendererCreate(outputbase));
api.TessResultRendererInsert(renderer, api.TessTextRendererCreate(outputbase));
String dataPath = api.TessBaseAPIGetDatapath(handle);
api.TessResultRendererInsert(renderer, api.TessPDFRendererCreate(outputbase, dataPath, FALSE));
int result = api.TessBaseAPIProcessPages(handle, image, null, 0, renderer);
if (result == FALSE) {
logger.error("Error during processing.");
return;
}
while ((renderer = api.TessResultRendererNext(renderer)) != null) {
String ext = api.TessResultRendererExtention(renderer).getString(0);
logger.info(String.format("TessResultRendererExtention: %s\nTessResultRendererTitle: %s\nTessResultRendererImageNum: %d",
ext,
api.TessResultRendererTitle(renderer).getString(0),
api.TessResultRendererImageNum(renderer)));
}
api.TessDeleteResultRenderer(renderer);
assertTrue(new File(outputbase + ".pdf").exists());
}
示例28
/**
* Test of ResultRenderer method, of class TessAPI1.
*
* @throws java.lang.Exception
*/
@Test
public void testResultRenderer() throws Exception {
logger.info("TessResultRenderer");
String image = String.format("%s/%s", this.testResourcesDataPath, "eurotext.tif");
String output = "capi-test.txt";
int set_only_init_params = ITessAPI.FALSE;
int oem = TessOcrEngineMode.OEM_DEFAULT;
PointerByReference configs = null;
int configs_size = 0;
String[] params = {"load_system_dawg", "tessedit_char_whitelist"};
String vals[] = {"F", ""}; //0123456789-.IThisalotfpnex
PointerByReference vars_vec = new PointerByReference();
vars_vec.setPointer(new StringArray(params));
PointerByReference vars_values = new PointerByReference();
vars_values.setPointer(new StringArray(vals));
NativeSize vars_vec_size = new NativeSize(params.length);
TessAPI1.TessBaseAPISetOutputName(handle, output);
int rc = TessAPI1.TessBaseAPIInit4(handle, datapath, language,
oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, set_only_init_params);
if (rc != 0) {
TessAPI1.TessBaseAPIDelete(handle);
logger.error("Could not initialize tesseract.");
return;
}
String outputbase = "target/test-classes/test-results/ResultRenderer1";
TessResultRenderer renderer = TessAPI1.TessHOcrRendererCreate(outputbase);
TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessBoxTextRendererCreate(outputbase));
TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessTextRendererCreate(outputbase));
String dataPath = TessAPI1.TessBaseAPIGetDatapath(handle);
TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessPDFRendererCreate(outputbase, dataPath, FALSE));
int result = TessAPI1.TessBaseAPIProcessPages(handle, image, null, 0, renderer);
// if (result == FALSE) {
// logger.error("Error during processing.");
// return;
// }
while ((renderer = TessAPI1.TessResultRendererNext(renderer)) != null) {
String ext = TessAPI1.TessResultRendererExtention(renderer).getString(0);
logger.info(String.format("TessResultRendererExtention: %s\nTessResultRendererTitle: %s\nTessResultRendererImageNum: %d",
ext,
TessAPI1.TessResultRendererTitle(renderer).getString(0),
TessAPI1.TessResultRendererImageNum(renderer)));
}
TessAPI1.TessDeleteResultRenderer(renderer);
assertTrue(new File(outputbase + ".pdf").exists());
}
示例29
@Override
public int TessBaseAPIInit4(ITessAPI.TessBaseAPI handle, String datapath, String language, int oem, PointerByReference configs, int configs_size, PointerByReference vars_vec, PointerByReference vars_values, NativeSize vars_vec_size, int set_only_non_debug_params) {
throw new UnsupportedOperationException("Not supported yet.");
}
示例30
/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoOpenGL(OSVR_RenderManagerOpenGL, OSVR_RenderInfoCount, OSVR_RenderParams, OSVR_RenderInfoOpenGL*)</code> */
public static native byte osvrRenderManagerGetRenderInfoOpenGL(Pointer renderManager, NativeSize renderInfoIndex, OSVR_RenderParams.ByValue renderParams, OSVR_RenderInfoOpenGL renderInfoOut);