⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imlib.c

📁 《Linux程序设计权威指南》源代码
💻 C
字号:
	/* File: imlib.c */	#include <X11/Xlib.h>	#include <X11/Xutil.h>	#include <X11/extensions/shape.h>	#include <Imlib.h>	int main(int argc, char **argv)	{		Display *display;		Window win;		XSetWindowAttributes attr;		//Imlib 的数据		ImlibData *id;		ImlibImage *im;		Pixmap p,m;		int w,h;     		display = XOpenDisplay(NULL);		//初始化		id = Imlib_init(display);		//载入图像		im = Imlib_load_image(id, "penguin.xpm");		//取得图像的尺寸		w = im->rgb_width;		h = im->rgb_height;		//建立窗口		win = XCreateWindow(display,DefaultRootWindow(display),			0,0,w,h,0,id->x.depth, InputOutput,			id->x.visual,0,&attr);		//选择事件		XSelectInput(display,win,StructureNotifyMask);		//在缓冲区内画图像		Imlib_render(id, im, w, h);		//提取图像和图像掩码		p = Imlib_move_image(id, im);		//如果图像是非透明的掩码应该是0		m = Imlib_move_mask(id, im);		//设置窗口的背景图像		XSetWindowBackgroundPixmap(display, win, p);		//如果有图像掩码, 使用掩码		if (m) XShapeCombineMask(display, win,			ShapeBounding, 0, 0, m, ShapeSet);		//显示窗口		XMapWindow(display,win);		//同步X Server		XSync(display,False);		while(1){			XEvent ev;      			XNextEvent(display,&ev);			if (ev.type==ConfigureNotify){				w = ev.xconfigure.width;				h = ev.xconfigure.height;				Imlib_render(id, im, w, h);				Imlib_free_pixmap(id, p);				p = Imlib_move_image(id, im);				m = Imlib_move_mask(id, im);				XSetWindowBackgroundPixmap(display, win, p);				if (m) XShapeCombineMask(display, win,					ShapeBounding, 0, 0, m, ShapeSet);				XClearWindow(display,win);				XSync(display,False);			}		}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -