diff --git a/gdk/gdktexture.c b/gdk/gdktexture.c index 0c9fdf5535..06987ff9e6 100644 --- a/gdk/gdktexture.c +++ b/gdk/gdktexture.c @@ -712,3 +712,39 @@ gdk_texture_save_to_png_bytes (GdkTexture *texture) return gdk_save_png (texture); } + +/** + * gdk_texture_save_to_tiff: + * @texture: a `GdkTexture` + * @filename: (type filename): the filename to store to + * + * Store the given @texture to the @filename as a TIFF file. + * + * GTK will attempt to store data without loss. + * Returns: %TRUE if saving succeeded, %FALSE on failure. + * + * Since: 4.6 + */ +gboolean +gdk_texture_save_to_tiff (GdkTexture *texture, + const char *filename) +{ + GBytes *bytes; + gboolean result; + + g_return_val_if_fail (GDK_IS_TEXTURE (texture), FALSE); + g_return_val_if_fail (filename != NULL, FALSE); + + bytes = gdk_save_tiff (texture); + + if (!bytes) + return FALSE; + + result = g_file_set_contents (filename, + g_bytes_get_data (bytes, NULL), + g_bytes_get_size (bytes), + NULL); + g_bytes_unref (bytes); + + return result; +} diff --git a/gdk/gdktexture.h b/gdk/gdktexture.h index 41b9f3d7e7..ef0276ac2f 100644 --- a/gdk/gdktexture.h +++ b/gdk/gdktexture.h @@ -71,6 +71,9 @@ gboolean gdk_texture_save_to_png (GdkTexture const char *filename); GDK_AVAILABLE_IN_4_6 GBytes * gdk_texture_save_to_png_bytes (GdkTexture *texture); +GDK_AVAILABLE_IN_4_6 +gboolean gdk_texture_save_to_tiff (GdkTexture *texture, + const char *filename); G_END_DECLS