GdkPixbuf和HiDPI

时间:2018-07-07 10:51:57

标签: c++ gtk retina-display gdkpixbuf hidpi

我正在使用GTK +编写跨平台的C ++应用程序,但是我添加到我的应用程序中的所有图像在HiDPI屏幕(在这种情况下为MacBook Pro Retina显示器)上都是模糊的。其他GTK +元素(例如按钮,文本,树视图等)以及标准的GTK图标非常清晰,并且在显示屏上看起来很棒。

一个例子是我要添加到应用程序窗口中的PNG。它是128x128px,当我将其添加到窗口时,将其缩小到64x64:

GdkPixbuf *pix_buf, *logo_buf;
GtkWidget *logo;

pix_buf = gdk_pixbuf_new_from_file("logo128.png", NULL);
logo_buf = gdk_pixbuf_scale_simple(pix_buf, 64, 64, GDK_INTERP_BILINEAR)
logo = gtk_image_new_from_pixbuf(logo_buf);

g_object_unref(pix_buf);
g_object_unref(logo_buf);

gtk_grid_attach(GTK_GRID(grid), logo, 0, 0, 1, 2);

在尝试调试时,我使用函数gdk_window_get_scale_factor (GdkWindow *window);来检查比例因子。无论显示的内容是什么,它总是返回1,这告诉我即使其他元素很清晰,GTK也不知道比例因子是什么。

有人在这个问题上有经验吗?如何获得清晰的图像?

提前谢谢!

0 个答案:

没有答案