save
Description:
Saves pixbuf to a file in format type
.
By default, "jpeg", "png", "ico" and "bmp" are possible file formats to save in, but more formats may be installed. The list of all writable formats can be determined in the following way:
```c void add_if_writable (GdkPixbufFormat *data, GSList **list) { if (gdk_pixbuf_format_is_writable (data)) *list = g_slist_prepend (*list, data); }
GSList *formats = get_formats; GSList *writable_formats = NULL; g_slist_foreach (formats, add_if_writable, &writable_formats); g_slist_free (formats); ```
If `error` is set, `FALSE` will be returned. Possible errors include those in the `GDK_PIXBUF_ERROR` domain and those in the `G_FILE_ERROR` domain.
The variable argument list should be `NULL`-terminated; if not empty, it should contain pairs of strings that modify the save parameters. For example:
```c gdk_pixbuf_save (pixbuf, handle, "jpeg", &error, "quality", "100", NULL); ```
Currently only few parameters exist.
JPEG images can be saved with a "quality" parameter; its value should be in the range `[0, 100]`. JPEG and PNG density can be set by setting the "x-dpi" and "y-dpi" parameters to the appropriate values in dots per inch.
Text chunks can be attached to PNG images by specifying parameters of the form "tEXt::key", where key is an ASCII string of length 1-79. The values are UTF-8 encoded strings. The PNG compression level can be specified using the "compression" parameter; it's value is in an integer in the range of `[0, 9]`.
ICC color profiles can also be embedded into PNG, JPEG and TIFF images. The "icc-profile" value should be the complete ICC profile encoded into base64.
```c char *contents; gsize length;
// icm_path is set elsewhere g_file_get_contents (icm_path, &contents, &length, NULL);
char *contents_encode = g_base64_encode ((const guchar *) contents, length);
gdk_pixbuf_save (pixbuf, handle, "png", &error, "icc-profile", contents_encode, NULL); ```
TIFF images recognize:
1. a "bits-per-sample" option (integer) which can be either 1 for saving bi-level CCITTFAX4 images, or 8 for saving 8-bits per sample 2. a "compression" option (integer) which can be 1 for no compression, 2 for Huffman, 5 for LZW, 7 for JPEG and 8 for DEFLATE (see the libtiff documentation and tiff.h for all supported codec values) 3. an "icc-profile" option (zero-terminated string) containing a base64 encoded ICC color profile.
ICO images can be saved in depth 16, 24, or 32, by using the "depth" parameter. When the ICO saver is given "x_hot" and "y_hot" parameters, it produces a CUR instead of an ICO.
Parameters:
this |
a `GdkPixbuf`. |
filename |
name of file to save. |
type |
name of file format. |
... |
list of key-value save options, followed by `NULL` |
error |
return location for error |
Returns:
`TRUE` on success, and `FALSE` otherwise |