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

📄 imlib.c

📁 《Linux程序设计权威指南》源代码
💻 C
字号:
	/* File: imlib.c */	#include <gdk_imlib.h>	#include <gdk/gdk.h>	#include <gdk/gdkx.h>	int main(int argc, char **argv)	{		int i, j;		int sw, sh;		GdkWindowAttr         attr;		GdkWindow             *win;		GdkPixmap             *p = NULL,*m;		GdkImlibImage         *im;		int display_w, display_h;		gint w,h;		unsigned char modify[256];		if (argc<=1) {			printf("Usage:\n %s image_file\n",argv[0]);			exit(1);		}		//初始化		gtk_set_locale();		gtk_init(&argc,&argv);		gdk_imlib_init();		//使用Visual和Colormap		gtk_widget_push_visual(gdk_imlib_get_visual());		gtk_widget_push_colormap(gdk_imlib_get_colormap());    		//载入图片		im = gdk_imlib_load_image(argv[1]);		//获得图片的尺寸		w = im->rgb_width;		h = im->rgb_height;		//建立无边界窗口		attr.override_redirect = TRUE;		attr.window_type=GDK_WINDOW_TEMP;		attr.wclass=GDK_INPUT_OUTPUT;		attr.event_mask=GDK_STRUCTURE_MASK;		attr.width=w;		attr.height=h;		win = gdk_window_new(NULL,&attr,0);		gdk_window_show(win);		display_w = DisplayWidth(gdk_display, gdk_screen);		display_h = DisplayHeight(gdk_display, gdk_screen);		//enlarge		for(i=1; i<=20; i++){			sw = (int) ((float)w * i / 20);			sh = (int) ((float)h * i / 20);			gdk_imlib_render(im, sw, sh);			if(p) gdk_imlib_free_pixmap(p);			p=gdk_imlib_move_image(im);			gdk_window_set_back_pixmap(win,p,0);			gdk_window_move_resize(win,				(display_w - sw)/2, (display_h - sh)/2, sw, sh);			gdk_flush();			usleep(50000);		}		//fade out	        for ( i=30-1;i>=1;i--){                	for (j=0;j<256;j++)                        	modify[j] = (unsigned char) ( j*i/30 );                	gdk_imlib_set_image_red_curve(im, modify);                	gdk_imlib_set_image_green_curve(im, modify);                	gdk_imlib_set_image_blue_curve(im, modify);                	gdk_imlib_changed_image(im);                	//gdk_imlib_render(im, pix_width, pix_height);                	gdk_imlib_paste_image(im, win, 0, 0, sw, sh);                	gdk_flush();                	usleep(50000);        	}		gdk_window_destroy(win);        	if(p) gdk_imlib_free_pixmap(p);		return 0;	}

⌨️ 快捷键说明

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