Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
VpImageRGBa.cpp
1#include <cstring>
2#include <sstream>
3#include <visp3/core/vpConfig.h>
4#include <visp3/core/vpImage.h>
5#include <visp3/core/vpRGBa.h>
6
7extern "C" {
8
9#if !defined(__ppc__)
10// to suppress warning from jni.h on OS X
11#define TARGET_RT_MAC_CFM 0
12#endif
13#include <jni.h>
14
15#ifdef ENABLE_VISP_NAMESPACE
16 using namespace VISP_NAMESPACE_NAME;
17#endif
18
19#if defined(__clang__)
20// Mute warning : identifier 'Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__II' is reserved because it contains '__' [-Wreserved-identifier]
21# pragma clang diagnostic push
22# pragma clang diagnostic ignored "-Wreserved-identifier"
23#endif
24
25 // Java Method: VpImageRGBa()
26 JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__(JNIEnv *env, jclass, jstring type)
27 {
28 (void)env;
29 (void)type;
30 return (jlong) new vpImage<vpRGBa>();
31 }
32
33 // Java Method: VpImageRGBa(int r, int c)
34 JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__II(JNIEnv *env, jclass, jint r, jint c)
35 {
36 (void)env;
37 return (jlong) new vpImage<vpRGBa>(r, c);
38 }
39
40 // Java Method: VpImageRGBa(int r, int c, byte val)
41 JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa__IICCCC(JNIEnv *env, jclass, jint r, jint c,
42 jchar R, jchar G, jchar B, jchar A)
43 {
44 (void)env;
45 vpRGBa val(static_cast<unsigned char>(R), static_cast<unsigned char>(G), static_cast<unsigned char>(B), static_cast<unsigned char>(A));
46 return (jlong) new vpImage<vpRGBa>(r, c, val);
47 }
48
49 // Java Method: VpImageRGBa(byte[] array, int height, int width, boolean copyData)
50 JNIEXPORT jlong JNICALL Java_org_visp_core_VpImageRGBa_n_1VpImageRGBa___3BIIZ(JNIEnv *env, jclass, jbyteArray arr,
51 jint h, jint w, jboolean copyData)
52 {
53 jbyte *array = env->GetByteArrayElements(arr, nullptr);
54
55 return (jlong) new vpImage<vpRGBa>((vpRGBa *)array, static_cast<unsigned int>(h), static_cast<unsigned int>(w), copyData);
56
57 // be memory friendly
58 env->ReleaseByteArrayElements(arr, array, 0);
59 }
60
61 // Java Method: getCols()
62 JNIEXPORT jint JNICALL Java_org_visp_core_VpImageRGBa_n_1cols(JNIEnv *env, jclass, jlong address)
63 {
64 (void)env;
65 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for nullptr
66 return me->getCols();
67 }
68
69 // Java Method: getRows()
70 JNIEXPORT jint JNICALL Java_org_visp_core_VpImageRGBa_n_1rows(JNIEnv *env, jclass, jlong address)
71 {
72 (void)env;
73 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for nullptr
74 return me->getRows();
75 }
76
77 // Java Method: getPixel(int i, int j)
78 JNIEXPORT jbyteArray JNICALL Java_org_visp_core_VpImageRGBa_n_1getPixel(JNIEnv *env, jclass, jlong address, jint i,
79 jint j)
80 {
81 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for nullptr
82 vpRGBa val = (*me)(i, j);
83 jbyteArray ret = env->NewByteArray(4);
84 unsigned char temp[] = { val.R, val.G, val.B, val.A };
85 env->SetByteArrayRegion(ret, 0, 4, (jbyte *)temp);
86 return ret;
87 }
88
89 // Java Method: getPixels()
90 JNIEXPORT jbyteArray JNICALL Java_org_visp_core_VpImageRGBa_n_1getPixels(JNIEnv *env, jclass, jlong address)
91 {
92 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for nullptr
93 jbyteArray ret = env->NewByteArray(me->getNumberOfPixel() * 4);
94 env->SetByteArrayRegion(ret, 0, me->getNumberOfPixel() * 4, (jbyte *)me->bitmap);
95 return ret;
96 }
97
98 // Java Method: dump()
99 JNIEXPORT jstring JNICALL Java_org_visp_core_VpImageRGBa_n_1dump(JNIEnv *env, jclass, jlong address)
100 {
101 vpImage<vpRGBa> *me = (vpImage<vpRGBa> *)address; // TODO: check for nullptr
102 std::stringstream ss;
103 ss << *me;
104 return env->NewStringUTF(ss.str().c_str());
105 }
106
107#if defined(__clang__)
108# pragma clang diagnostic pop
109#endif
110
111} // extern "C"
Definition of the vpImage class member functions.
Definition vpImage.h:131
unsigned int getNumberOfPixel() const
Definition vpImage.h:203
unsigned int getCols() const
Definition vpImage.h:171
Type * bitmap
points toward the bitmap
Definition vpImage.h:135
unsigned int getRows() const
Definition vpImage.h:212
unsigned char B
Blue component.
Definition vpRGBa.h:327
unsigned char R
Red component.
Definition vpRGBa.h:325
unsigned char G
Green component.
Definition vpRGBa.h:326
unsigned char A
Additional component.
Definition vpRGBa.h:328