97 |
return JNI_TRUE; |
return JNI_TRUE; |
98 |
} |
} |
99 |
|
|
100 |
|
/* |
101 |
|
* Creates the image from an array of java bytes. |
102 |
|
*/ |
103 |
|
JNIEXPORT jboolean JNICALL |
104 |
|
Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData |
105 |
|
(JNIEnv *env, jobject obj, jbyteArray data) |
106 |
|
{ |
107 |
|
jbyte *src; |
108 |
|
GdkPixbuf* pixbuf; |
109 |
|
GdkPixbufLoader* loader; |
110 |
|
int len; |
111 |
|
int width; |
112 |
|
int height; |
113 |
|
|
114 |
|
gdk_threads_enter (); |
115 |
|
|
116 |
|
src = (*env)->GetByteArrayElements (env, data, NULL); |
117 |
|
len = (*env)->GetArrayLength (env, data); |
118 |
|
|
119 |
|
loader = gdk_pixbuf_loader_new (); |
120 |
|
|
121 |
|
gdk_pixbuf_loader_write (loader, (guchar *)src, len, NULL); |
122 |
|
gdk_pixbuf_loader_close (loader, NULL); |
123 |
|
|
124 |
|
(*env)->ReleaseByteArrayElements (env, data, src, 0); |
125 |
|
|
126 |
|
pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); |
127 |
|
|
128 |
|
if (pixbuf == NULL) |
129 |
|
{ |
130 |
|
createRawData (env, obj, NULL); |
131 |
|
|
132 |
|
gdk_threads_leave (); |
133 |
|
|
134 |
|
return JNI_FALSE; |
135 |
|
} |
136 |
|
|
137 |
|
width = gdk_pixbuf_get_width (pixbuf); |
138 |
|
height = gdk_pixbuf_get_height (pixbuf); |
139 |
|
|
140 |
|
createRawData (env, obj, pixbuf); |
141 |
|
setWidthHeight(env, obj, width, height); |
142 |
|
|
143 |
|
gdk_threads_leave (); |
144 |
|
|
145 |
|
return JNI_TRUE; |
146 |
|
} |
147 |
|
|
148 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
149 |
Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf |
Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf |
150 |
(JNIEnv *env, jobject obj) |
(JNIEnv *env, jobject obj) |