如何在 Allegro 5 中使用浏览过的文件?
How to Use a Browsed File in Allegro 5?
我需要创建一个非常简单的程序,让用户浏览图像,然后将其用于显示在屏幕上的位图。
我知道如何使用 Allegro 5 创建一个简单的本机文件对话框,但我不知道如何将所选文件用于我的位图。
这是我的代码:
ALLEGRO_FILECHOOSER *filechooser;
filechooser = al_create_native_file_dialog("C:", "Choose a file.", "*.*;*.jpg;", 1);
al_show_native_file_dialog(display, filechooser);
当我点击文件时,原生文件对话框消失,什么也没有发生。我为这个问题搜索了很多,但找不到我的问题的答案。
如何使用所选图像创建位图?
让我们先看看 API 定义的内容:
ALLEGRO_FILECHOOSER
: 文件对话框句柄。
al_show_native_file_dialog
: 显示与句柄关联的对话框的方法。
因此,在您创建对话框、初始化并显示它之后,用户将select 一个文件。但是,此对话框支持一次 selection 多个文件,这就是 al_get_native_file_dialog_path
[= 中的 size_t i
40=] 是为了.
为了让您知道用户 select 编辑了多少文件,您必须调用 al_get_native_file_dialog_count
并将它返回的值存储在某处。
稍后,您现在将在 al_load_bitmap 函数中调用 al_get_native_file_dialog_path
,并提供您要打开的文件编号,然后 瞧! 您拥有用户请求的图像,或者如果是这种情况的图像,但实现它是制作幻灯片应用程序的一个很好的练习。
举个例子:
ALLEGRO_FILECHOOSER *filechooser;
filechooser = al_create_native_file_dialog("C:", "Choose a file.", "*.*;*.jpg;", 1);
al_show_native_file_dialog(display, filechooser);
/* Actually I will not use this but leaving it here as example only*/
int counter = al_get_native_file_dialog_count(filechooser);
/* Instead of cycling counter, I will select 1 to refer to the first image selected*/
const char* path = al_get_native_file_dialog_path(filechooser, 1);
ALLEGRO_BITMAP *image = al_load_bitmap(path);
之后,将存储在 ALLEGRO_BITMAP
上的图像显示到屏幕上。
我需要创建一个非常简单的程序,让用户浏览图像,然后将其用于显示在屏幕上的位图。
我知道如何使用 Allegro 5 创建一个简单的本机文件对话框,但我不知道如何将所选文件用于我的位图。
这是我的代码:
ALLEGRO_FILECHOOSER *filechooser;
filechooser = al_create_native_file_dialog("C:", "Choose a file.", "*.*;*.jpg;", 1);
al_show_native_file_dialog(display, filechooser);
当我点击文件时,原生文件对话框消失,什么也没有发生。我为这个问题搜索了很多,但找不到我的问题的答案。
如何使用所选图像创建位图?
让我们先看看 API 定义的内容:
ALLEGRO_FILECHOOSER
: 文件对话框句柄。al_show_native_file_dialog
: 显示与句柄关联的对话框的方法。
因此,在您创建对话框、初始化并显示它之后,用户将select 一个文件。但是,此对话框支持一次 selection 多个文件,这就是 al_get_native_file_dialog_path
[= 中的 size_t i
40=] 是为了.
为了让您知道用户 select 编辑了多少文件,您必须调用 al_get_native_file_dialog_count
并将它返回的值存储在某处。
稍后,您现在将在 al_load_bitmap 函数中调用 al_get_native_file_dialog_path
,并提供您要打开的文件编号,然后 瞧! 您拥有用户请求的图像,或者如果是这种情况的图像,但实现它是制作幻灯片应用程序的一个很好的练习。
举个例子:
ALLEGRO_FILECHOOSER *filechooser;
filechooser = al_create_native_file_dialog("C:", "Choose a file.", "*.*;*.jpg;", 1);
al_show_native_file_dialog(display, filechooser);
/* Actually I will not use this but leaving it here as example only*/
int counter = al_get_native_file_dialog_count(filechooser);
/* Instead of cycling counter, I will select 1 to refer to the first image selected*/
const char* path = al_get_native_file_dialog_path(filechooser, 1);
ALLEGRO_BITMAP *image = al_load_bitmap(path);
之后,将存储在 ALLEGRO_BITMAP
上的图像显示到屏幕上。