since: 2.6

Declaration [src]

gdk_pixbuf_new_from_file_at_scale (
  const char* filename,
  int width,
  int height,
  gboolean preserve_aspect_ratio,
  GError** error

Description [src]

Creates a new pixbuf by loading an image from a file.

The file format is detected automatically.

If NULL is returned, then error will be set. Possible errors are:

  • the file could not be opened
  • there is no loader for the file’s format
  • there is not enough memory to allocate the image buffer
  • the image buffer contains invalid data

The error domains are GDK_PIXBUF_ERROR and G_FILE_ERROR.

The image will be scaled to fit in the requested size, optionally preserving the image’s aspect ratio.

When preserving the aspect ratio, a width of -1 will cause the image to be scaled to the exact given height, and a height of -1 will cause the image to be scaled to the exact given width. When not preserving aspect ratio, a width or height of -1 means to not scale the image at all in that dimension. Negative values for width and height are allowed since 2.8.

Available since: 2.6



Type: const char*

Name of file to load, in the GLib file name encoding.

The data is owned by the caller of the function.
The value is a platform-native string, using the preferred OS encoding on Unix and UTF-8 on Windows.

Type: int

The width the image should have or -1 to not constrain the width.


Type: int

The height the image should have or -1 to not constrain the height.


Type: gboolean

TRUE to preserve the image’s aspect ratio.


Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will be left initialized to NULL by the constructor if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: GdkPixbuf

A newly-created pixbuf.

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be NULL.