Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
VpImageRGBa.cpp
1#include <cstring>
2#include <sstream>
3#include <visp3/core/vpImage.h>
4#include <visp3/core/vpRGBa.h>
5
6extern "C" {
7
8#if !defined(__ppc__)
9// to suppress warning from jni.h on OS X
10#define TARGET_RT_MAC_CFM 0
11#endif
12#include <jni.h>
13
14// Java Method: VpImageRGBa()
15JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__(JNIEnv *env, jclass, jstring type)
16{
17 (void)env;
18 (void)type;
19 return (jlong) new vpImage<vpRGBa>();
20}
21
22// Java Method: VpImageRGBa(int r, int c)
23JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__II(JNIEnv *env, jclass, jint r, jint c)
24{
25 (void)env;
26 return (jlong) new vpImage<vpRGBa>(r, c);
27}
28
29// Java Method: VpImageRGBa(int r, int c, byte val)
30JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__IICCCC(JNIEnv *env, jclass, jint r, jint c,
31 jchar R, jchar G, jchar B, jchar A)
32{
33 (void)env;
34 vpRGBa val(R, G, B, A);
35 return (jlong) new vpImage<vpRGBa>(r, c, val);
36}
37
38// Java Method: VpImageRGBa(byte[] array, int height, int width, boolean copyData)
39JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa___3BIIZ(JNIEnv *env, jclass, jbyteArray arr,
40 jint h, jint w, jboolean copyData)
41{
42 jbyte *array = env->GetByteArrayElements(arr, NULL);
43
44 return (jlong) new vpImage<vpRGBa>((vpRGBa *const)array, (const unsigned int)h, (const unsigned int)w, copyData);
45
46 // be memory friendly
47 env->ReleaseByteArrayElements(arr, array, 0);
48}
49
50// Java Method: getCols()
51JNIEXPORT jint JNICALL Java_org_visp_core_VpImageRGBa_n_1cols(JNIEnv *env, jclass, jlong address)
52{
53 (void)env;
54 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for NULL
55 return me->getCols();
56}
57
58// Java Method: getRows()
59JNIEXPORT jint JNICALL Java_org_visp_core_VpImageRGBa_n_1rows(JNIEnv *env, jclass, jlong address)
60{
61 (void)env;
62 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for NULL
63 return me->getRows();
64}
65
66// Java Method: getPixel(int i, int j)
67JNIEXPORT jbyteArray JNICALL Java_org_visp_core_VpImageRGBa_n_1getPixel(JNIEnv *env, jclass, jlong address, jint i,
68 jint j)
69{
70 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for NULL
71 vpRGBa val = (*me)(i, j);
72 jbyteArray ret = env->NewByteArray(4);
73 unsigned char temp[] = {val.R, val.G, val.B, val.A};
74 env->SetByteArrayRegion(ret, 0, 4, (jbyte *)temp);
75 return ret;
76}
77
78// Java Method: getPixels()
79JNIEXPORT jbyteArray JNICALL Java_org_visp_core_VpImageRGBa_n_1getPixels(JNIEnv *env, jclass, jlong address)
80{
81 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for NULL
82 jbyteArray ret = env->NewByteArray(me->getNumberOfPixel() * 4);
83 env->SetByteArrayRegion(ret, 0, me->getNumberOfPixel() * 4, (jbyte *)me->bitmap);
84 return ret;
85}
86
87// Java Method: dump()
88JNIEXPORT jstring JNICALL Java_org_visp_core_VpImageRGBa_n_1dump(JNIEnv *env, jclass, jlong address)
89{
90 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for NULL
91 std::stringstream ss;
92 ss << *me;
93 return env->NewStringUTF(ss.str().c_str());
94}
95
96} // extern "C"
Definition of the vpImage class member functions.
Definition vpImage.h:135
unsigned int getNumberOfPixel() const
Definition vpImage.h:205
unsigned int getCols() const
Definition vpImage.h:175
Type * bitmap
points toward the bitmap
Definition vpImage.h:139
unsigned int getRows() const
Definition vpImage.h:214
unsigned char B
Blue component.
Definition vpRGBa.h:140
unsigned char R
Red component.
Definition vpRGBa.h:138
unsigned char G
Green component.
Definition vpRGBa.h:139
unsigned char A
Additionnal component.
Definition vpRGBa.h:141