/** * Loads a pixbuf from a file. */ JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf (JNIEnv *env, jobject obj, jstring name) { const char *filename; int width, height; GdkPixbuf *pixbuf; /* Don't use the JCL convert function because it throws an exception on failure */ filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) return JNI_FALSE; pixbuf = gdk_pixbuf_new_from_file (filename, NULL); if (pixbuf == NULL) { (*env)->ReleaseStringUTFChars (env, name, filename); return JNI_FALSE; } width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); createRawData (env, obj, pixbuf); setWidthHeight(env, obj, width, height); (*env)->ReleaseStringUTFChars (env, name, filename); return JNI_TRUE; }
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf (JNIEnv *env, jobject obj) { int width, heigth; GdkPixbuf *pixbuf = cp_gtk_image_get_pixbuf (env, obj); width = gdk_pixbuf_get_width (pixbuf); heigth = gdk_pixbuf_get_height (pixbuf); setWidthHeight(env, obj, width, heigth); }
void fg_FillType::_regenerateImage(GR_Graphics * pG) { UT_return_if_fail(m_pGraphic); UT_return_if_fail(m_pDocLayout); DELETEP(m_pImage); m_pImage = m_pGraphic->regenerateImage(pG); setWidthHeight(pG,m_iWidth,m_iHeight); UT_Rect rec(0,0,m_iWidth,m_iHeight); m_pImage->scaleImageTo(pG,rec); m_iGraphicTick = m_pDocLayout->getGraphicTick(); }
/*! * set this class to have an image background for fills. */ void fg_FillType::setImage(FG_Graphic * pGraphic, GR_Image * pImage, GR_Graphics * pG, UT_sint32 iWidth, UT_sint32 iHeight) { m_FillType = FG_FILL_IMAGE; DELETEP(m_pImage); DELETEP(m_pGraphic); m_pImage = pImage; m_pGraphic = pGraphic; m_bTransparentForPrint = false; setWidthHeight(pG,iWidth,iHeight); m_pDocImage = NULL; }
/* * Creates the image from an array of java bytes. */ JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData (JNIEnv *env, jobject obj, jbyteArray data) { jbyte *src; GdkPixbuf* pixbuf; GdkPixbufLoader* loader; int len; int width; int height; src = (*env)->GetByteArrayElements (env, data, NULL); len = (*env)->GetArrayLength (env, data); loader = gdk_pixbuf_loader_new (); gdk_pixbuf_loader_write (loader, (guchar *)src, len, NULL); gdk_pixbuf_loader_close (loader, NULL); (*env)->ReleaseByteArrayElements (env, data, src, 0); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); if (pixbuf == NULL) { g_object_unref (loader); createRawData (env, obj, NULL); return JNI_FALSE; } g_object_ref (pixbuf); g_object_unref (loader); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); createRawData (env, obj, pixbuf); setWidthHeight(env, obj, width, height); return JNI_TRUE; }