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

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

?? gd.c

?? php-4.4.7學習linux時下載的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
		for (w = wstart; w < wstart + wid; w++) {			gdImageSetPixel(im, x, w, color);		}		if (((y2 - y1) * ydirflag) > 0) {			while (x < xend) {				x++;				if (d < 0) {					d += incr1;				} else {					y++;					d += incr2;				}				wstart = y - wid / 2;				for (w = wstart; w < wstart + wid; w++) {					gdImageSetPixel (im, x, w, color);				}			}		} else {			while (x < xend) {				x++;				if (d < 0) {					d += incr1;				} else {					y--;					d += incr2;				}				wstart = y - wid / 2;				for (w = wstart; w < wstart + wid; w++) {					gdImageSetPixel (im, x, w, color);				}			}		}	} else {		/* More-or-less vertical. use wid for horizontal stroke */		/* 2.0.12: Michael Schwartz: divide rather than multiply; 		   TBB: but watch out for /0! */		double as = sin(atan2(dy, dx));		if (as != 0) {			if (!(wid = thick / as)) {				wid = 1;			}		} else {			wid = 1;		}		d = 2 * dx - dy;		incr1 = 2 * dx;		incr2 = 2 * (dx - dy);		if (y1 > y2) {			y = y2;			x = x2;			yend = y1;			xdirflag = (-1);		} else {			y = y1;			x = x1;			yend = y2;			xdirflag = 1;		}		/* Set up line thickness */		wstart = x - wid / 2;		for (w = wstart; w < wstart + wid; w++) {			gdImageSetPixel (im, w, y, color);		}		if (((x2 - x1) * xdirflag) > 0) {			while (y < yend) {				y++;				if (d < 0) {					d += incr1;				} else {					x++;					d += incr2;				}				wstart = x - wid / 2;				for (w = wstart; w < wstart + wid; w++) {					gdImageSetPixel (im, w, y, color);				}			}		} else {			while (y < yend) {				y++;				if (d < 0) {					d += incr1;				} else {					x--;					d += incr2;				}				wstart = x - wid / 2;				for (w = wstart; w < wstart + wid; w++) {					gdImageSetPixel (im, w, y, color);				}			}		}	}	/* If this is the only line we are drawing, go ahead and blend. */	if (color == gdAntiAliased && !im->AA_polygon) {		gdImageAABlend(im);	}}/* * Added on 2003/12 by Pierre-Alain Joye (pajoye@pearfr.org) * */#define BLEND_COLOR(a, nc, c, cc) \nc = (cc) + (((((c) - (cc)) * (a)) + ((((c) - (cc)) * (a)) >> 8) + 0x80) >> 8);inline static void gdImageSetAAPixelColor(gdImagePtr im, int x, int y, int color, int t){	int dr,dg,db,p,r,g,b;	dr = gdTrueColorGetRed(color);	dg = gdTrueColorGetGreen(color);	db = gdTrueColorGetBlue(color);	p = gdImageGetPixel(im,x,y);	r = gdTrueColorGetRed(p);	g = gdTrueColorGetGreen(p);	b = gdTrueColorGetBlue(p);	BLEND_COLOR(t, dr, r, dr);	BLEND_COLOR(t, dg, g, dg);	BLEND_COLOR(t, db, b, db);	im->tpixels[y][x]=gdTrueColorAlpha(dr, dg, db,  gdAlphaOpaque);}  /* * Added on 2003/12 by Pierre-Alain Joye (pajoye@pearfr.org) **/void gdImageAALine (gdImagePtr im, int x1, int y1, int x2, int y2, int col){	/* keep them as 32bits */	long x, y, inc;	long dx, dy,tmp;	if (y1 < 0 && y2 < 0) {		return;	}	if (y1 < 0) {		x1 += (y1 * (x1 - x2)) / (y2 - y1);		y1 = 0;	}	if (y2 < 0) {		x2 += (y2 * (x1 - x2)) / (y2 - y1);		y2 = 0;	}	/* bottom edge */	if (y1 >= im->sy && y2 >= im->sy) {		return;	}	if (y1 >= im->sy) {		x1 -= ((im->sy - y1) * (x1 - x2)) / (y2 - y1);		y1 = im->sy - 1;	}	if (y2 >= im->sy) {		x2 -= ((im->sy - y2) * (x1 - x2)) / (y2 - y1);		y2 = im->sy - 1;	}	/* left edge */	if (x1 < 0 && x2 < 0) {		return;	}	if (x1 < 0) {		y1 += (x1 * (y1 - y2)) / (x2 - x1);		x1 = 0;	}	if (x2 < 0) {		y2 += (x2 * (y1 - y2)) / (x2 - x1);		x2 = 0;	}	/* right edge */	if (x1 >= im->sx && x2 >= im->sx) {		return;	}	if (x1 >= im->sx) {		y1 -= ((im->sx - x1) * (y1 - y2)) / (x2 - x1);		x1 = im->sx - 1;	}	if (x2 >= im->sx) {		y2 -= ((im->sx - x2) * (y1 - y2)) / (x2 - x1);		x2 = im->sx - 1;	}	dx = x2 - x1;	dy = y2 - y1;	if (dx == 0 && dy == 0) {		return;	}	if (abs(dx) > abs(dy)) {		if (dx < 0) {			tmp = x1;			x1 = x2;			x2 = tmp;			tmp = y1;			y1 = y2;			y2 = tmp;			dx = x2 - x1;			dy = y2 - y1;		}		x = x1 << 16;		y = y1 << 16;		inc = (dy * 65536) / dx;		while ((x >> 16) < x2) {			gdImageSetAAPixelColor(im, x >> 16, y >> 16, col, (y >> 8) & 0xFF);			if ((y >> 16) + 1 < im->sy) {				gdImageSetAAPixelColor(im, x >> 16, (y >> 16) + 1,col, (~y >> 8) & 0xFF);			}			x += (1 << 16);			y += inc;		}	} else {		if (dy < 0) {			tmp = x1;			x1 = x2;			x2 = tmp;			tmp = y1;			y1 = y2;			y2 = tmp;			dx = x2 - x1;			dy = y2 - y1;		}		x = x1 << 16;		y = y1 << 16;		inc = (dx * 65536) / dy;		while ((y>>16) < y2) {			gdImageSetAAPixelColor(im, x >> 16, y >> 16, col, (x >> 8) & 0xFF);			if ((x >> 16) + 1 < im->sx) {				gdImageSetAAPixelColor(im, (x >> 16) + 1, (y >> 16),col, (~x >> 8) & 0xFF);			}			x += inc;			y += (1<<16);		}	}}static void dashedSet (gdImagePtr im, int x, int y, int color, int *onP, int *dashStepP, int wid, int vert);void gdImageDashedLine (gdImagePtr im, int x1, int y1, int x2, int y2, int color){	int dx, dy, incr1, incr2, d, x, y, xend, yend, xdirflag, ydirflag;	int dashStep = 0;	int on = 1;	int wid;	int vert;	int thick = im->thick;	dx = abs(x2 - x1);	dy = abs(y2 - y1);	if (dy <= dx) {		/* More-or-less horizontal. use wid for vertical stroke */		/* 2.0.12: Michael Schwartz: divide rather than multiply;		TBB: but watch out for /0! */		double as = sin(atan2(dy, dx));		if (as != 0) {			wid = thick / as;		} else {			wid = 1;		}		wid = (int)(thick * sin(atan2(dy, dx)));		vert = 1;		d = 2 * dy - dx;		incr1 = 2 * dy;		incr2 = 2 * (dy - dx);		if (x1 > x2) {			x = x2;			y = y2;			ydirflag = (-1);			xend = x1;		} else {			x = x1;			y = y1;			ydirflag = 1;			xend = x2;		}		dashedSet(im, x, y, color, &on, &dashStep, wid, vert);		if (((y2 - y1) * ydirflag) > 0) {			while (x < xend) {				x++;				if (d < 0) {					d += incr1;				} else {					y++;					d += incr2;				}				dashedSet(im, x, y, color, &on, &dashStep, wid, vert);			}		} else {			while (x < xend) {				x++;				if (d < 0) {					d += incr1;				} else {					y--;					d += incr2;				}				dashedSet(im, x, y, color, &on, &dashStep, wid, vert);			}		}	} else {		/* 2.0.12: Michael Schwartz: divide rather than multiply;		TBB: but watch out for /0! */		double as = sin (atan2 (dy, dx));		if (as != 0) {			wid = thick / as;		} else {			wid = 1;		}		vert = 0;		d = 2 * dx - dy;		incr1 = 2 * dx;		incr2 = 2 * (dx - dy);		if (y1 > y2) {			y = y2;			x = x2;			yend = y1;			xdirflag = (-1);		} else {			y = y1;			x = x1;			yend = y2;			xdirflag = 1;		}		dashedSet(im, x, y, color, &on, &dashStep, wid, vert);		if (((x2 - x1) * xdirflag) > 0) {			while (y < yend) {				y++;				if (d < 0) {					d += incr1;				} else {					x++;					d += incr2;				}				dashedSet(im, x, y, color, &on, &dashStep, wid, vert);			}		} else {			while (y < yend) {				y++;				if (d < 0) {					d += incr1;				} else {					x--;					d += incr2;				}				dashedSet(im, x, y, color, &on, &dashStep, wid, vert);			}		}	}}static void dashedSet (gdImagePtr im, int x, int y, int color, int *onP, int *dashStepP, int wid, int vert){	int dashStep = *dashStepP;	int on = *onP;	int w, wstart;	dashStep++;	if (dashStep == gdDashSize) {		dashStep = 0;		on = !on;	}	if (on) {		if (vert) {			wstart = y - wid / 2;			for (w = wstart; w < wstart + wid; w++) {				gdImageSetPixel(im, x, w, color);			}		} else {			wstart = x - wid / 2;			for (w = wstart; w < wstart + wid; w++) {				gdImageSetPixel(im, w, y, color);			}		}	}	*dashStepP = dashStep;	*onP = on;}void gdImageChar (gdImagePtr im, gdFontPtr f, int x, int y, int c, int color){	int cx, cy;	int px, py;	int fline;	cx = 0;	cy = 0;#ifdef CHARSET_EBCDIC	c = ASC (c);#endif /*CHARSET_EBCDIC */	if ((c < f->offset) || (c >= (f->offset + f->nchars))) {		return;	}	fline = (c - f->offset) * f->h * f->w;	for (py = y; (py < (y + f->h)); py++) {		for (px = x; (px < (x + f->w)); px++) {			if (f->data[fline + cy * f->w + cx]) {				gdImageSetPixel(im, px, py, color);			}			cx++;		}		cx = 0;		cy++;	}}void gdImageCharUp (gdImagePtr im, gdFontPtr f, int x, int y, int c, int color){	int cx, cy;	int px, py;	int fline;	cx = 0;	cy = 0;#ifdef CHARSET_EBCDIC	c = ASC (c);#endif /*CHARSET_EBCDIC */	if ((c < f->offset) || (c >= (f->offset + f->nchars))) {		return;	}	fline = (c - f->offset) * f->h * f->w;	for (py = y; py > (y - f->w); py--) {		for (px = x; px < (x + f->h); px++) {			if (f->data[fline + cy * f->w + cx]) {				gdImageSetPixel(im, px, py, color);			}			cy++;		}		cy = 0;		cx++;	}}void gdImageString (gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color){	int i;	int l;	l = strlen ((char *) s);	for (i = 0; (i < l); i++) {		gdImageChar(im, f, x, y, s[i], color);		x += f->w;	}}void gdImageStringUp (gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color){	int i;	int l;	l = strlen ((char *) s);	for (i = 0; (i < l); i++) {		gdImageCharUp(im, f, x, y, s[i], color);		y -= f->w;	}}static int strlen16 (unsigned short *s);void gdImageString16 (gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color){	int i;	int l;	l = strlen16(s);	for (i = 0; (i < l); i++) {		gdImageChar(im, f, x, y, s[i], color);		x += f->w;	}}void gdImageStringUp16 (gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color){	int i;	int l;	l = strlen16(s);	for (i = 0; i < l; i++) {		gdImageCharUp(im, f, x, y, s[i], color);		y -= f->w;	}}static int strlen16 (unsigned short *s){	int len = 0;	while (*s) {		s++;		len++;	}	return len;}#ifndef HAVE_LSQRT/* If you don't have a nice square root function for longs, you can use   ** this hack */long lsqrt (long n){ 	long result = (long) sqrt ((double) n);	return result;}#endif/* s and e are integers modulo 360 (degrees), with 0 degrees   being the rightmost extreme and degrees changing clockwise.   cx and cy are the center in pixels; w and h are the horizontal    and vertical diameter in pixels. Nice interface, but slow.   See gd_arc_f_buggy.c for a better version that doesn't    seem to be bug-free yet. */void gdImageArc (gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color){	if ((s % 360) == (e % 360)) {		gdImageEllipse(im, cx, cy, w, h, color);	} else {		gdImageFilledArc(im, cx, cy, w, h, s, e, color, gdNoFill);	}}void gdImageFilledArc (gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style){	gdPoint pts[3];	int i;	int lx = 0, ly = 0;	int fx = 0, fy = 0;	if (s > 360) {		s = s % 360;	}	if (e > 360) {		e = e % 360;	}	while (s<0) {		s += 360;	}	while (e < s) {		e += 360;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2023国产精品| 欧美日韩一区高清| 石原莉奈在线亚洲二区| 亚洲激情在线激情| 综合久久国产九一剧情麻豆| 国产三级欧美三级日产三级99| 日韩一区二区在线播放| 91精品国产综合久久婷婷香蕉| 在线成人av网站| 欧美一区二区久久久| 欧美变态凌虐bdsm| 久久综合色鬼综合色| 日本一区二区三区在线观看| 国产精品久久久久影院老司| 亚洲精品视频一区二区| 亚洲成人免费视频| 麻豆91免费观看| 国产精品一二二区| 972aa.com艺术欧美| 欧美视频在线一区二区三区| 91精品国产色综合久久ai换脸| 日韩天堂在线观看| 久久精品无码一区二区三区| 亚洲乱码国产乱码精品精小说| 午夜精品久久久久久久| 国内精品自线一区二区三区视频| 成人性色生活片| 欧美亚洲动漫另类| 欧美xxxxx牲另类人与| 国产精品美女久久久久久久久| 亚洲最大色网站| 麻豆国产欧美日韩综合精品二区 | 欧美日韩二区三区| 日本一区二区成人| 亚洲日本一区二区三区| 天天综合色天天综合| 国产成人av影院| 色诱视频网站一区| 欧美一级一级性生活免费录像| 欧美激情一区二区三区蜜桃视频| 一区二区在线免费观看| 国产一区二区三区在线看麻豆| 色婷婷一区二区三区四区| 久久综合色鬼综合色| 午夜电影一区二区| www.欧美日韩| 久久综合色播五月| 视频在线在亚洲| 94-欧美-setu| 欧美激情一区二区在线| 蜜臀精品一区二区三区在线观看| 91丨九色丨尤物| 国产亚洲一区二区三区| 奇米色777欧美一区二区| 色先锋资源久久综合| 国产欧美视频在线观看| 久久国产精品99久久久久久老狼 | gogogo免费视频观看亚洲一| 欧美一区二区三区四区在线观看| 亚洲欧美电影一区二区| 成人午夜免费av| 久久人人爽爽爽人久久久| 日本sm残虐另类| 欧美片网站yy| 亚洲国产精品久久久男人的天堂 | 欧美精品一区二区在线播放| 亚洲国产成人va在线观看天堂| 丁香桃色午夜亚洲一区二区三区| 日韩精品在线一区| 日韩av在线免费观看不卡| 欧美性生活久久| 亚洲在线视频一区| 色婷婷激情综合| 亚洲免费在线视频一区 二区| 成人激情av网| 国产精品久久99| 99热国产精品| 国产精品国产三级国产有无不卡 | 粉嫩高潮美女一区二区三区| 久久这里都是精品| 国产麻豆9l精品三级站| 久久综合色婷婷| 不卡一二三区首页| 亚洲日本在线天堂| 欧美日韩亚洲综合| 秋霞影院一区二区| 欧美成人精品福利| 国产成人啪免费观看软件| 久久久久久久久久久99999| 国产美女一区二区三区| 国产人成亚洲第一网站在线播放 | 久久久国产综合精品女国产盗摄| 激情文学综合插| 欧美国产国产综合| 成人免费看片app下载| 国产女人水真多18毛片18精品视频| 丰满放荡岳乱妇91ww| 亚洲三级在线免费观看| 色av一区二区| 美女看a上一区| 国产女同互慰高潮91漫画| 91黄视频在线观看| 免费成人av资源网| 国产精品久久久久久久久果冻传媒| 日本精品视频一区二区| 天堂在线亚洲视频| 久久久久久电影| 欧美性大战久久久久久久| 日精品一区二区三区| 久久久精品欧美丰满| 欧美性色黄大片| 国产成人精品免费在线| 一区二区成人在线视频| 2019国产精品| 欧美又粗又大又爽| 国产精品综合二区| 午夜a成v人精品| 国产欧美日韩不卡| 欧美色成人综合| 懂色av噜噜一区二区三区av| 午夜伊人狠狠久久| 国产精品免费久久| 日韩欧美亚洲国产另类| 一本久久a久久精品亚洲| 久久99久久久久| 一区二区三区不卡在线观看| 日韩午夜激情视频| 欧美影院午夜播放| 丰满亚洲少妇av| 精品一区二区三区视频在线观看| 一区二区三区成人在线视频| 日本一区二区免费在线| 日韩女优视频免费观看| 欧美美女激情18p| 一本色道a无线码一区v| www.一区二区| 国产一区二区久久| 麻豆一区二区三区| 舔着乳尖日韩一区| 亚洲男人电影天堂| 国产精品三级久久久久三级| 欧美成人a在线| 日韩美女视频一区二区在线观看| 欧美中文字幕一二三区视频| 大桥未久av一区二区三区中文| 麻豆精品视频在线观看| 美国欧美日韩国产在线播放| 午夜欧美视频在线观看 | 欧美色老头old∨ideo| 91黄色免费看| 在线观看成人小视频| 91麻豆福利精品推荐| 色综合天天视频在线观看| 91网站视频在线观看| 一本久久综合亚洲鲁鲁五月天 | 奇米影视一区二区三区| 日韩有码一区二区三区| 奇米一区二区三区av| 老司机午夜精品99久久| 激情综合网最新| 韩国成人在线视频| 成人黄色av网站在线| 成人a级免费电影| 91丝袜美腿高跟国产极品老师| 色菇凉天天综合网| 国产日韩欧美一区二区三区综合 | 成人精品免费看| www.欧美精品一二区| 欧美伊人久久久久久午夜久久久久| 色久优优欧美色久优优| 欧美日韩大陆一区二区| 欧美一级视频精品观看| 久久久久99精品一区| 国产精品美女一区二区在线观看| 亚洲人成网站精品片在线观看 | 精品欧美久久久| 国产欧美中文在线| 亚洲激情在线播放| 久久av中文字幕片| 成人激情免费视频| 欧美日韩专区在线| 久久亚洲一级片| 亚洲男人的天堂在线观看| 青青青伊人色综合久久| 成人午夜大片免费观看| 欧美三级在线视频| 久久久亚洲精华液精华液精华液| 1024成人网| 麻豆成人免费电影| 色999日韩国产欧美一区二区| 制服.丝袜.亚洲.中文.综合| 国产精品视频第一区| 午夜精品久久久久久久蜜桃app| 国产高清不卡一区| 欧美日本高清视频在线观看| 欧美经典一区二区| 亚洲成人激情社区| 成人免费毛片app| 精品99久久久久久| 亚洲高清免费在线|