准备一张图片"p_0.jpeg"放在程序目录下

代码:
#include<gtk/gtk.h>
int main(int argc,char* argv[]){
GtkWidget* window;
GtkWidget *frame;
GtkWidget *image;
GdkPixbuf *pixbuf,*dstPixbuf;
//这个函数在所有的 GTK 程序都要调用。参数由命令行中解析出来并且送到该程序中
gtk_init(&argc,&argv);
//建立主窗口
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
//设置窗口标题和大小
gtk_window_set_title(GTK_WINDOW(window),"Demo");
gtk_window_set_default_size(GTK_WINDOW(window),300,200);
//从文件中建立pixbuf像素缓冲区
pixbuf = gdk_pixbuf_new_from_file("p_0.jpeg",NULL);
//调整图像大小
dstPixbuf = gdk_pixbuf_scale_simple(pixbuf,200,150,GDK_INTERP_BILINEAR);
//从像素缓冲区中建立图像
image = gtk_image_new_from_pixbuf(dstPixbuf);
//释放缓冲区
g_object_unref(pixbuf);
g_object_unref(dstPixbuf);
//创建框架
frame = gtk_frame_new("this is a picture with size 200x150");
//将图像加入框架
gtk_container_add(GTK_CONTAINER(frame),image);
//将框架加入窗口
gtk_container_add(GTK_CONTAINER(window),frame);
//窗口退出事件添加回调函数
g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
//显示窗口
gtk_widget_show_all(window);
//所有的 GTK 程序必须有一个 gtk_main() 函数。程序运行停在这里 等待事件 (如键盘事件或鼠标事件) 的发生。
gtk_main();
return 0;
}
编译
运行
