Загрузить данные в GdkPixbufLoader из g_input_stream_read - PullRequest
0 голосов
/ 05 июня 2010

Я загружаю некоторые данные из файла:

GInputStream* input_stream;
GFile *file = g_file_new_for_path(file_path);

input_stream = g_file_read(file,generator_cancellable ,NULL);
g_input_stream_read(input_stream, buffer, sizeof (buffer),generator_cancellable,error);

Как загрузить результат функции g_input_stream_read в объект GdkPixbufLoader?

Спасибо.

1 Ответ

1 голос
/ 05 июня 2010

Вам необходимо создать новый GdkPixbufLoader и передать ему данные, которые вы прочитали с GInputStream:

GdkPixbufLoader *loader = gdk_pixbuf_loader_new ();
gint num_bytes = g_input_stream_read (input_stream, buffer, ...);
gdk_pixbuf_loader_write (loader, buffer, num_bytes, error);

Однако это имеет смысл, если вы выполняете чтение асинхронно или порциями (например, для отображения прогрессивно загруженного JPEG или PNG). Если вы просто читаете все данные одновременно с блокировкой, используйте более простой gdk_pixbuf_new_from_stream().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...