亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? img.cpp

?? kaffe Java 解釋器語言,源碼,Java的子集系統,開放源代碼
?? CPP
字號:
/*** img.cpp - ** Copyright (c) 1999*      Transvirtual Technologies, Inc.  All rights reserved.** See the file "license.terms" for information on usage and redistribution * of this file. */#include "toolkit.hpp"/* interfaces of image conversion functions */extern "C" {	Image* readGifFile ( int );	Image* readGifData ( unsigned char*, long len );	Image* readJpegFile ( int );	Image* readJpegData ( unsigned char*, long len );	}/*Image* readPngFile ( FILE* );Image* readPngData ( unsigned char*, long len );*//************************************************************************************* own auxiliary funcs*/Image*createImage ( int width, int height ){	Image * img = (Image*)AWT_CALLOC( 1, sizeof( Image));		img->trans  = -1;     /* default to no alpha */		img->width = width;	img->height = height;		img->dc = CreateCompatibleDC( 0);	img->bmp = CreateCompatibleBitmap( X->display, img->width, img->height);		SelectObject( img->dc, img->bmp);	return img;}voidcreateMaskImage( Toolkit* X, Image* img) {		if ( ! img->mask) {		img->dcMask = CreateCompatibleDC( 0);#if defined ( UNDER_95 )		img->mask = CreateCompatibleBitmap( X->display, img->width, img->height);#else		/* for use of monochrome masks ( MaskBlt) */		img->mask = CreateBitmap( img->width, img->height, 1, 1, NULL);#endif					SelectObject( img->dcMask, img->mask);		PatBlt( img->dcMask, 0, 0, img->width, img->height, BLACKNESS);	}}voidfreeImage( Toolkit* X, Image* img) {	Image *next, *first = img;		/* we have to be aware of image rings (GIF movies), iterate */	do {		DeleteObject( img->bmp);		DeleteDC( img->dc);		img->bmp = 0;		img->dc = 0;		if ( img->mask) {			DeleteObject( img->mask);			DeleteDC( img->dcMask);			img->mask = 0;			img->dcMask = 0;		}		next = img->next;		AWT_FREE( img);		img = next;	} while ( (img != 0) && (img != first) );}/************************************************************************************* exported native methods*/extern "C" {		void*		Java_java_awt_Toolkit_imgCreateImage ( JNIEnv* env, jclass clazz, jint width, jint height )	{		Image *img = createImage( width, height);						return img;	}			void*		Java_java_awt_Toolkit_imgCreateScreenImage ( JNIEnv* env, jclass clazz, jint width, jint height )	{		Image  *img = createImage( width, height);				return img;	}			/* generic (ImageProducer) based image construction */		void		Java_java_awt_Toolkit_imgSetIdxPels ( JNIEnv* env, jclass clazz, Image * img,		jint x, jint y, jint w, jint h,		jintArray clrMap, jbyteArray idxPels, jint trans,		jint off, jint scan)	{		register int    row, col;		COLORREF		pix;		jboolean        isCopy;		jint            *clr = env->GetIntArrayElements( clrMap, &isCopy);		jbyte           *pel = env->GetByteArrayElements( idxPels, &isCopy);		unsigned char   *idx = (unsigned char*)(pel + off);		int             maxCol = x + w;		int             maxRow = y + h;		unsigned char   curPel;				if ( (trans >= 0) && !img->mask)			createMaskImage( X, img);				for ( row = y; row < maxRow; row++) {			for ( col = x; col < maxCol; col++) {				curPel = idx[col + row * scan];				pix = ColorJ2N( clr[curPel] );				if ( trans >= 0 ) {					if ( curPel == trans ){						pix = 0;						PIXEL( img->dcMask, col, row, 0x00ffffff);											}									}				PIXEL( img->dc, col, row, pix);			}		}				env->ReleaseIntArrayElements( clrMap, clr, JNI_ABORT);		env->ReleaseByteArrayElements( idxPels, pel, JNI_ABORT);			}			void		Java_java_awt_Toolkit_imgSetRGBPels ( JNIEnv* env, jclass clazz, Image * img,		jint x, jint y, jint w, jint h,		jintArray rgbPels, jint off, jint scan)	{		register int    row, col;		COLORREF		   pix;		jboolean        isCopy;		jint            *rgbs = env->GetIntArrayElements( rgbPels, &isCopy);		jint            *rgb = rgbs + off;		int             maxCol = x + w;		int             maxRow = y + h;				for ( row = y; row < maxRow; row++) {			for ( col = x; col < maxCol; col++) {				pix = rgb[col + row * scan];				if ( (pix & 0xff000000) == 0xff000000 ) {										PIXEL( img->dc, col, row, pix);				}				else {					if ( !img->mask )						createMaskImage( X, img);					PIXEL( img->dcMask, col, row, 0x00ffffff);					PIXEL( img->dc, col, row, 0);									}			}		}				env->ReleaseIntArrayElements( rgbPels, rgbs, JNI_ABORT);	}		void		Java_java_awt_Toolkit_imgComplete( JNIEnv* env, jclass clazz, Image * img, jint status )	{	/*	* Check for alpha channel reduction. Note that full alpha images aren't created	* with Shm (by policy), so you might loose the Shm speed factor. This method is just	* called for external (generic) production, since our own prod facilities usually	* know better if and how to do alpha support		*/		//if ( img->alpha &&  !needsFullAlpha( X, img, 0.0) )		//	reduceAlpha( X, img, 128);	}		void		Java_java_awt_Toolkit_imgFreeImage( JNIEnv* env, jclass clazz, Image * img)	{		freeImage( X, img);	}			void*		Java_java_awt_Toolkit_imgCreateScaledImage ( JNIEnv* env, jclass clazz,		Image* img, int width, int height )	{		Image *si = createImage( width, height);		si->bmp = CreateCompatibleBitmap( X->display, width, height);				SelectObject( si->dc, si->bmp);		StretchBlt( si->dc, 0, 0, width, height,			img->dc, 0, 0, img->width, img->height, SRCCOPY);				if ( img->mask) {			createMaskImage( X, si);			StretchBlt( si->dcMask, 0, 0, width, height,				img->dcMask, 0, 0, img->width, img->height, SRCCOPY);		}				return si;	}			void		Java_java_awt_Toolkit_imgProduceImage ( JNIEnv* env, jclass clazz, jobject producer, Image* img )	{		int       i, j;		int       r, g, b;		unsigned long pix;		jboolean  isCopy;		jclass    prodClazz  = env->GetObjectClass( producer);		jclass    modelClazz = env->FindClass( "java/awt/image/ColorModel");				jmethodID modelCtor = env->GetStaticMethodID( modelClazz, "getRGBdefault", "()Ljava/awt/image/ColorModel;");		jmethodID setDim    = env->GetMethodID( prodClazz, "setDimensions", "(II)V");		jmethodID setCM     = env->GetMethodID( prodClazz, "setColorModel", "(Ljava/awt/image/ColorModel;)V");		jmethodID setHints  = env->GetMethodID( prodClazz, "setHints", "(I)V");		jmethodID setPix    = env->GetMethodID( prodClazz, "setPixels", "(IIIILjava/awt/image/ColorModel;[III)V");		jmethodID imgCompl  = env->GetMethodID( prodClazz, "imageComplete", "(I)V");				jobject   model = env->CallStaticObjectMethod( modelClazz, modelCtor);				/* for JDK compat, the pixel buffer has to be large enough to hold the *complete* image */		jintArray pelArray  = env->NewIntArray( img->width * img->height);		jint*     pels = env->GetIntArrayElements( pelArray, &isCopy);				env->CallVoidMethod( producer, setDim, img->width, img->height);		env->CallVoidMethod( producer, setCM, model);		env->CallVoidMethod( producer, setHints, 6); /* TOPDOWNLEFTRIGHT | COMPLETESCANLINES */				if ( img->bmp ) {			for ( j=0; j<img->height; j++ ) {				for ( i=0; i<img->width; i++ ) {					if ( (img->mask == 0) || GetPixel( img->dcMask, i, j) ) {						pix = GetPixel( img->dc, i, j);						rgbValues( X, pix, &r, &g, &b);						pels[j*img->width+i] = (0xff000000 | (r << 16) | (g << 8) | b);					}					else {						pels[j*img->width+i] = 0;					}				}			}		}						if ( isCopy ) {			env->ReleaseIntArrayElements( pelArray, pels, JNI_COMMIT);		}				env->CallVoidMethod( producer, setPix, 0, 0, img->width, img->height, model, pelArray, 0, img->width);		env->CallVoidMethod( producer, imgCompl, 3); /* 3 = STATICIMAGEDONE */	}				/************************************************************************************	* native format production dispatcher routines (GIF, jpeg, png, ..)	*/	#define SIG_LENGTH 4#define SIG_GIF    1#define SIG_JPEG   2#define SIG_PNG    3		Image *unknownImage = 0;  /* fill in some default image here */		int imageFormat ( unsigned char* sig ) {		if ( (sig[0] == 'G') && (sig[1] == 'I') && (sig[2] == 'F') )			return SIG_GIF;				if ( (sig[0] == 0xff) && (sig[1] == 0xd8) && (sig[2] == 0xff) && (sig[3] == 0xe0) )			return SIG_JPEG;				if ( (sig[0] == 0x89) && (sig[1] == 'P') && (sig[2] == 'N') && (sig[3] == 'G') )			return SIG_PNG;				return 0;	}		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;	}		void*		Java_java_awt_Toolkit_imgCreateFromData ( JNIEnv* env, jclass clazz,		jbyteArray jbuffer, jint off, jint len )	{		Image *img = 0;		jboolean isCopy;		jint   length = env->GetArrayLength( jbuffer);		jbyte  *jb = env->GetByteArrayElements( jbuffer, &isCopy);		unsigned char *buf = (unsigned char*) jb + off;				/* in case of a buffer overrun, we probably have a JPEG read error, anyway */		if ( (off + len) <= length ) {			switch ( imageFormat( buf) ) {			case SIG_GIF:				img = readGifData( buf, len);				break;			case SIG_JPEG:				img = readJpegData( buf, len);				break;			case SIG_PNG:				//	  img = readPngData( buf, len);				break;			default:				img = unknownImage;			}		}				env->ReleaseByteArrayElements( jbuffer, jb, JNI_ABORT);		return img;  	}		void*		Java_java_awt_Toolkit_imgSetFrame ( JNIEnv* env, jclass clazz, Image* img, int frameNo )		{		Image *imgCur = img;				if ( !img->next )				return img;				while ( img->frame != frameNo ) {				img = img->next;						if ( img == imgCur )					break;			}		return img;	}					/************************************************************************************	* field access	*/		jint		Java_java_awt_Toolkit_imgGetWidth ( JNIEnv* env, jclass clazz, Image* img)	{		return img->width;	}		jint		Java_java_awt_Toolkit_imgGetHeight ( JNIEnv* env, jclass clazz, Image* img)	{		return img->height;	}		jboolean		Java_java_awt_Toolkit_imgIsMultiFrame ( JNIEnv* env, jclass clazz, Image* img)	{		return ((jboolean)img->next != NULL );	}		jint		Java_java_awt_Toolkit_imgGetLatency ( JNIEnv* env, jclass clazz, Image* img)	{		return img->latency;	}		void*		Java_java_awt_Toolkit_imgGetNextFrame ( JNIEnv* env, jclass clazz, Image* img )	{		return img->next;   /* next in the ring */	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品在线一区二区| 亚洲另类中文字| 国产精品久久免费看| 伊人开心综合网| 国产在线播放一区三区四| 色综合久久久久久久久久久| 日韩一区二区麻豆国产| 亚洲色图另类专区| 国产剧情一区在线| 欧美一区二区三区免费观看视频| 中文字幕中文字幕一区| 久久99久久99小草精品免视看| 色婷婷精品大视频在线蜜桃视频| 欧美精品一区二区三区一线天视频| 亚洲香肠在线观看| 国产成人h网站| 日韩精品一区二区三区在线播放| 亚洲国产一区在线观看| 99在线精品免费| 国产日产欧产精品推荐色| 天天综合色天天综合| 色噜噜夜夜夜综合网| 国产精品水嫩水嫩| 国产成人综合精品三级| 欧美一级片在线| 日本人妖一区二区| 欧美日韩mp4| 亚洲成av人片一区二区三区| 91麻豆国产精品久久| 综合电影一区二区三区 | 色中色一区二区| 欧美激情一区三区| 国产精品一区二区三区网站| 亚洲欧美乱综合| 成人黄动漫网站免费app| 久久蜜桃av一区精品变态类天堂 | 五月婷婷综合在线| 色诱亚洲精品久久久久久| 亚洲欧美另类久久久精品2019| 成人av影院在线| 中文字幕永久在线不卡| va亚洲va日韩不卡在线观看| 亚洲视频免费看| 欧美三级日韩在线| 亚洲成人中文在线| 91麻豆精品国产91久久久久久久久| 亚瑟在线精品视频| 日韩一级片在线播放| 精品一区二区av| 中文欧美字幕免费| 91麻豆精东视频| 日韩精品亚洲专区| 欧美xxxxx牲另类人与| 国产一区福利在线| 国产精品毛片久久久久久久| 色婷婷av一区二区三区软件 | 欧美国产成人精品| av亚洲精华国产精华精华| 亚洲综合色区另类av| 67194成人在线观看| 国产精品综合网| 亚洲色图欧美在线| 欧美理论电影在线| 国产精品资源网| 一区二区三区在线视频免费| 欧美一级日韩免费不卡| 成人激情免费视频| 亚洲国产一二三| 亚洲成av人影院| 2欧美一区二区三区在线观看视频| 粉嫩绯色av一区二区在线观看| 一区二区三区欧美日| 精品国产sm最大网站免费看| 99久久99久久精品免费观看| 日韩福利电影在线| 中文一区二区完整视频在线观看| 欧美日韩在线电影| 国产成+人+日韩+欧美+亚洲| 亚洲国产成人tv| 国产欧美日韩视频在线观看| 欧美人牲a欧美精品| 欧洲国产伦久久久久久久| 日韩高清一级片| 99re这里只有精品首页| 日韩精品成人一区二区在线| 欧美国产精品一区| 欧美日韩电影一区| 成人免费视频网站在线观看| 日本不卡在线视频| 日韩理论片中文av| 欧美激情在线一区二区三区| 欧美久久久久久久久中文字幕| 成人精品鲁一区一区二区| 天天影视色香欲综合网老头| 自拍偷拍欧美激情| 久久精品夜夜夜夜久久| 91精品国产色综合久久ai换脸 | 欧美成人欧美edvon| 成人精品在线视频观看| 久久99九九99精品| 丝袜诱惑亚洲看片| 亚洲免费资源在线播放| 国产蜜臀97一区二区三区| 欧美日韩的一区二区| 在线日韩一区二区| 97久久超碰国产精品| 欧美日韩国产片| 97精品电影院| 成人h精品动漫一区二区三区| 狠狠色丁香久久婷婷综合丁香| 亚洲一区二区在线视频| 亚洲免费三区一区二区| 一区在线观看免费| **性色生活片久久毛片| 国产精品久久久久婷婷| 国产亚洲成av人在线观看导航| 欧美一区二区视频在线观看2020 | 婷婷六月综合亚洲| 亚洲自拍欧美精品| 亚洲精品乱码久久久久久久久| 亚洲人成在线观看一区二区| 亚洲人被黑人高潮完整版| 欧美极品美女视频| 国产精品第一页第二页第三页| 国产精品视频一二| 国产精品电影院| 亚洲综合一区二区精品导航| 亚洲乱码国产乱码精品精的特点| 中文字幕在线观看不卡| 亚洲欧美激情视频在线观看一区二区三区 | 678五月天丁香亚洲综合网| 欧美三级日本三级少妇99| 欧美日韩三级一区| 日韩亚洲欧美中文三级| 久久综合成人精品亚洲另类欧美| 久久综合久久99| 国产精品久久久久久户外露出| 亚洲视频免费看| 亚洲成人午夜电影| 奇米色一区二区| 高清日韩电视剧大全免费| av不卡免费电影| 欧美日韩亚州综合| 精品99999| 国产精品美女久久久久高潮| 一区二区成人在线视频| 无码av免费一区二区三区试看| 蜜桃av噜噜一区| 欧美一级一区二区| 久久精品亚洲精品国产欧美| 成人欧美一区二区三区在线播放| 亚洲一区在线视频观看| 久久精品国产成人一区二区三区| 丁香网亚洲国际| 欧美日韩亚洲综合一区二区三区| 欧美xxxxx牲另类人与| 亚洲国产精品黑人久久久| 亚洲免费观看高清完整版在线观看 | 欧美一区二区三区日韩视频| 久久久久久久久久美女| 洋洋成人永久网站入口| 黄色资源网久久资源365| 91视频你懂的| 精品国产一二三区| 一区二区三区不卡视频在线观看| 激情都市一区二区| 色88888久久久久久影院野外| 26uuu亚洲| 午夜精品久久久久久| 成人手机电影网| 精品成a人在线观看| 亚洲午夜免费电影| 粉嫩高潮美女一区二区三区| 欧美一区二区三区四区在线观看 | 99视频有精品| 久久久久久久久岛国免费| 午夜精品一区二区三区三上悠亚| 高清av一区二区| 欧美www视频| 日韩精品亚洲一区| 91浏览器在线视频| 欧美激情一区二区三区在线| 青娱乐精品视频| 欧美揉bbbbb揉bbbbb| 中文字幕日本乱码精品影院| 国产激情视频一区二区在线观看 | 色系网站成人免费| 久久久.com| 久久不见久久见免费视频7| 欧美色手机在线观看| 国产精品国产精品国产专区不蜜| 精品一区二区三区久久久| 精品污污网站免费看| 亚洲三级在线免费| 成人丝袜高跟foot| 久久久久久久综合色一本| 久久福利资源站| 欧美va亚洲va| 久久精品国产精品亚洲红杏| 日韩欧美国产一区二区三区|