void* Java_java_awt_Toolkit_imgCreateFromFile ( JNIEnv* env, jclass clazz, jstring fileName ) { Image *img = 0; int infile; char *fn = java2CString( env, X, fileName); unsigned char sig[SIG_LENGTH]; if ( (infile = AWT_OPEN( fn)) >= 0 ) { if ( AWT_READ( infile, sig, sizeof(sig)) == sizeof(sig) ) { AWT_REWIND( infile); /* some native converters can't skip the signature read */ switch ( imageFormat( sig) ) { case SIG_GIF: img = readGifFile( infile); break; case SIG_JPEG: img = readJpegFile( infile); break; case SIG_PNG: //img = readPngFile( infile); break; default: img = unknownImage; } } AWT_CLOSE( infile); } return img; }
jobject Java_java_awt_Toolkit_imgCreateFromFile (JNIEnv *env, jclass clazz UNUSED, jstring fileName) { char *fname; s_image_t *img; DEBUGF("Enter"); fname = java2CString(env, fileName); s_image_init(&img); if (s_image_img(fname, img)) { s_image_uninit(img); AWT_FREE(fname); return NULL; } AWT_FREE(fname); DEBUGF("Leave"); return JCL_NewRawDataObject(env, img); }