mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-27 10:54:40 +00:00
Support integer image rotation and respect EXIF rotations
* src/image.c (imagemagick_load_image): Allow integer rotations in addition to floating point rotations (bug#22591). * src/image.c (imagemagick_load_image): Images that have an orientation given in EXIF and have no explicit :rotation tag are now pre-rotated. All information such as width/height is reported for the rotated image.
This commit is contained in:
parent
7dd45b61b1
commit
0f60049605
12
src/image.c
12
src/image.c
@ -8546,6 +8546,16 @@ imagemagick_load_image (struct frame *f, struct image *img,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* If no :rotation is explicitly specified, apply the automatic
|
||||
rotation from EXIF. */
|
||||
if (NILP (image_spec_value (img->spec, QCrotation, NULL)))
|
||||
if (MagickAutoOrientImage (image_wand) == MagickFalse)
|
||||
{
|
||||
image_error ("Error applying automatic orientation in image `%s'", img->spec);
|
||||
DestroyMagickWand (image_wand);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ino < 0 || ino >= MagickGetNumberImages (image_wand))
|
||||
{
|
||||
image_error ("Invalid image number `%s' in image `%s'", image, img->spec);
|
||||
@ -8646,7 +8656,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
|
||||
image_spec_value (img->spec, QCbackground, NULL); if (!STRINGP
|
||||
(specified_bg). */
|
||||
value = image_spec_value (img->spec, QCrotation, NULL);
|
||||
if (FLOATP (value))
|
||||
if (FLOATP (value) || INTEGERP (value))
|
||||
{
|
||||
rotation = extract_float (value);
|
||||
status = MagickRotateImage (image_wand, bg_wand, rotation);
|
||||
|
Loading…
Reference in New Issue
Block a user