Correct for image orientation when loading image
PEG and other image formats may include an EXIF orientation tag which indicates in what orientation (rotation and mirroring) the image should be displayed. libgdk-pixbuf does not correct for this when loading an image, but provides a function to apply the transform after the fact, which this commit uses. Pulled from https://github.com/swaywm/swaybg/pull/68
This commit is contained in:
parent
f9ce3f193b
commit
b70d85ec14
@ -31,8 +31,12 @@ cairo_surface_t *load_background_image(const char *path) {
|
|||||||
err->message);
|
err->message);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
image = gdk_cairo_image_surface_create_from_pixbuf(pixbuf);
|
// Correct for embedded image orientation; typical images are not
|
||||||
|
// rotated and will be handled efficiently
|
||||||
|
GdkPixbuf *oriented = gdk_pixbuf_apply_embedded_orientation(pixbuf);
|
||||||
g_object_unref(pixbuf);
|
g_object_unref(pixbuf);
|
||||||
|
image = gdk_cairo_image_surface_create_from_pixbuf(oriented);
|
||||||
|
g_object_unref(oriented);
|
||||||
#else
|
#else
|
||||||
image = cairo_image_surface_create_from_png(path);
|
image = cairo_image_surface_create_from_png(path);
|
||||||
#endif // HAVE_GDK_PIXBUF
|
#endif // HAVE_GDK_PIXBUF
|
||||||
|
Loading…
Reference in New Issue
Block a user