static void save_with_no_profile_or_description (ScreenshotApplication *self, GFileOutputStream *os, gchar *format) { gdk_pixbuf_save_to_stream_async (self->priv->screenshot, G_OUTPUT_STREAM (os), format, NULL, save_pixbuf_ready_cb, self, NULL); }
static void save_with_profile (ScreenshotApplication *self, GFileOutputStream *os, gchar *format) { gdk_pixbuf_save_to_stream_async (self->priv->screenshot, G_OUTPUT_STREAM (os), format, NULL, save_pixbuf_ready_cb, self, "icc-profile", self->priv->icc_profile_base64, NULL); }
static void save_with_description (ScreenshotApplication *self, GFileOutputStream *os, gchar *format) { gdk_pixbuf_save_to_stream_async (self->priv->screenshot, G_OUTPUT_STREAM (os), format, NULL, save_pixbuf_ready_cb, self, "tEXt::Software", "gnome-screenshot", NULL); }
static void photos_thumbnailer_generate_thumbnail_replace (GObject *source_object, GAsyncResult *res, gpointer user_data) { GCancellable *cancellable; GFile *thumbnail_file = G_FILE (source_object); g_autoptr (GFileOutputStream) stream = NULL; g_autoptr (GTask) task = G_TASK (user_data); PhotosThumbnailerGenerateData *data; const gchar *prgname; g_autofree gchar *original_height_str = NULL; g_autofree gchar *original_width_str = NULL; g_autofree gchar *uri = NULL; cancellable = g_task_get_cancellable (task); data = g_task_get_task_data (task); { g_autoptr (GError) error = NULL; stream = g_file_replace_finish (thumbnail_file, res, &error); if (error != NULL) { g_task_return_error (task, g_steal_pointer (&error)); goto out; } } g_assert_null (data->stream); data->stream = g_object_ref (stream); original_height_str = g_strdup_printf ("%" G_GINT64_FORMAT, data->original_height); original_width_str = g_strdup_printf ("%" G_GINT64_FORMAT, data->original_width); prgname = g_get_prgname (); uri = g_file_get_uri (data->file); gdk_pixbuf_save_to_stream_async (data->pixbuf_thumbnail, G_OUTPUT_STREAM (stream), "png", cancellable, photos_thumbnailer_generate_thumbnail_save_to_stream, g_object_ref (task), "tEXt::Software", prgname, "tEXt::Thumb::URI", uri, "tEXt::Thumb::Image::Height", original_height_str, "tEXt::Thumb::Image::Width", original_width_str, NULL); out: return; }
static void save_file_create_ready_cb (GObject *source, GAsyncResult *res, gpointer user_data) { GFileOutputStream *os; GError *error = NULL; ScreenshotDialog *dialog = user_data; os = g_file_create_finish (G_FILE (source), res, &error); if (error != NULL) { save_file_failed_error (dialog, error); g_error_free (error); return; } if (icc_profile_base64 != NULL) gdk_pixbuf_save_to_stream_async (screenshot, G_OUTPUT_STREAM (os), "png", NULL, save_pixbuf_ready_cb, dialog, "icc-profile", icc_profile_base64, "tEXt::Software", "gnome-screenshot", NULL); else gdk_pixbuf_save_to_stream_async (screenshot, G_OUTPUT_STREAM (os), "png", NULL, save_pixbuf_ready_cb, dialog, "tEXt::Software", "gnome-screenshot", NULL); g_object_unref (os); }
static void export_png (GtkButton *button, ChamplainView *view) { cairo_surface_t *surface; GdkPixbuf *pixbuf; GFileOutputStream *os; GFile *file; gint width, height; if (champlain_view_get_state (view) != CHAMPLAIN_STATE_DONE) return; surface = champlain_view_to_surface (view, TRUE); if (!surface) return; width = cairo_image_surface_get_width (surface); height = cairo_image_surface_get_height (surface); pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0, width, height); if (!pixbuf) return; file = g_file_new_for_path ("champlain-map.png"); os = g_file_create (file, G_FILE_CREATE_NONE, NULL, NULL); if (!os) { g_object_unref (pixbuf); return; } gdk_pixbuf_save_to_stream_async (pixbuf, G_OUTPUT_STREAM (os), "png", NULL, (GAsyncReadyCallback) export_to_png_cb, NULL); }