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;
	}
示例#2
0
文件: image.c 项目: d33tah/whitix
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);
}