实现功能:将指定的图片文件按指定比例在窗体中显示
注意:这段代码没有信号处理的实现,当点击关闭窗体的时候,虽然窗体关闭了,但程序并没有真正退出。
/* File: SizeShow.c
* Date: Mon Mar 27 15:36:09 HKT 2015
* Describe: Show the picture with the specified size
* Autor: won
*/
#include <stdio.h>
#include <gtk/gtk.h>
//指定显示分辨率
#define dest_width 320
#define dest_height 240
void showPic(char *filename)
{
GtkWidget *window;
GtkWidget *image;
const GdkPixbuf *src_pixbuf;
GdkPixbuf *dest_pixbuf;
//创建一个新窗口
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//读取图片参数
src_pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
//将src_pixbuf设置成屏幕大小
dest_pixbuf = gdk_pixbuf_scale_simple(src_pixbuf,
dest_width, dest_height, GDK_INTERP_HYPER);
//从dest_pixbuf中读取图片存于image中
image = gtk_image_new_from_pixbuf(dest_pixbuf);
//设置窗口大小
gtk_window_set_default_size(GTK_WINDOW(window), dest_width, dest_height);
//将图片image加入window容器中
gtk_container_add(GTK_CONTAINER(window), image);
//设置窗口边框宽度
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
//显示窗口
gtk_widget_show_all(window);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
showPic(argv[1]);
gtk_main();
return 0;
}
编译:
gcc PicParam.c -o PicParam `pkg-config --cflags --libs gtk+-2.0`
执行结果:
$ ./SizeShow 1.jpg
原文地址:http://blog.csdn.net/wonxxx/article/details/44788249