GraphicsMagick: 2 new changesets
GraphicsMagick Commits <[email protected]> Sat, 25 Jan 2025 08:43:56 -0600
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.50196.1737816246.7812.graphicsmagick-commit@lists.sourceforge.net> |
changeset e5576f8d6a8f in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=e5576f8d6a8f summary: coders/heif.c: Only apply Exif orientation if ignore-transformations is true changeset 2290d0e25d1d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=2290d0e25d1d summary: Fix copyright years diffstat: ChangeLog | 8 +++++++ VisualMagick/installer/inc/version.isx | 4 +- coders/heif.c | 37 +++++++++++++++++++++++++++------ coders/jpeg.c | 2 +- magick/version.h | 4 +- tests/rwfile.c | 2 +- wand/magick_wand.c | 2 +- www/ChangeLog.html | 10 +++++++++ 8 files changed, 55 insertions(+), 14 deletions(-) diffs (169 lines): diff -r b91cc8aa0f26 -r 2290d0e25d1d ChangeLog --- a/ChangeLog Fri Jan 24 09:53:11 2025 -0600 +++ b/ChangeLog Sat Jan 25 08:43:21 2025 -0600 @@ -1,3 +1,11 @@ +2025-01-25 Bob Friesenhahn <[email protected]> + + * coders/heif.c (ReadMetadata): Only apply Exif orientation if + ignore-transformations is true since HEIF native transformations + will handle orientation otherwise. Patch by Kevin Clauson via + GraphicsMagick SourceForge patch #83 "Patch: Fix HEIC Orientation + Issue". + 2025-01-24 Bob Friesenhahn <[email protected]> * wand/magick_wand.c (MagickSetImagePixels): If update image has diff -r b91cc8aa0f26 -r 2290d0e25d1d VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Fri Jan 24 09:53:11 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Sat Jan 25 08:43:21 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250124" -#define public MagickPackageReleaseDate "snapshot-20250124" +#define public MagickPackageVersionAddendum ".020250125" +#define public MagickPackageReleaseDate "snapshot-20250125" diff -r b91cc8aa0f26 -r 2290d0e25d1d coders/heif.c --- a/coders/heif.c Fri Jan 24 09:53:11 2025 -0600 +++ b/coders/heif.c Sat Jan 25 08:43:21 2025 -0600 @@ -1,5 +1,5 @@ /* -% Copyright (C) 2023-2024 GraphicsMagick Group +% Copyright (C) 2023-2025 GraphicsMagick Group % % This program is covered by multiple licenses, which are described in % Copyright.txt. You should have received a copy of Copyright.txt with this @@ -141,7 +141,8 @@ /* Read metadata (Exif and XMP) */ -static Image *ReadMetadata(struct heif_image_handle *heif_image_handle, +static Image *ReadMetadata(const ImageInfo *image_info, + struct heif_image_handle *heif_image_handle, Image *image, ExceptionInfo *exception) { int @@ -241,9 +242,9 @@ /* Big-endian offset decoding */ offset = (magick_uint32_t) p[exif_pad+0] << 24 | - (magick_uint32_t) p[exif_pad+1] << 16 | - (magick_uint32_t) p[exif_pad+2] << 8 | - (magick_uint32_t) p[exif_pad+3]; + (magick_uint32_t) p[exif_pad+1] << 16 | + (magick_uint32_t) p[exif_pad+2] << 8 | + (magick_uint32_t) p[exif_pad+3]; /* If the TIFF header offset is not zero, then need to @@ -257,7 +258,7 @@ /* Strip any EOI marker if payload starts with a JPEG marker */ if (profile_size > 2 && (memcmp(p+exif_pad+4,"\xff\xd8",2) == 0 || - memcmp(p+exif_pad+4,"\xff\xe1",2) == 0) && + memcmp(p+exif_pad+4,"\xff\xe1",2) == 0) && memcmp(p+exif_pad+4+profile_size-2,"\xff\xd9",2) == 0) profile_size -= 2; @@ -300,6 +301,28 @@ if (NULL != content_type && strncmp(content_type,"application/rdf+xml",19) == 0) SetImageProfile(image,"XMP",profile,profile_size); } + /* + Only apply Exif orientation if ignore-transformations is true + since HEIF native transformations will handle orientation otherwise + */ + if (strncmp(profile_name,"Exif",4) == 0) + { + const char *value; + MagickBool ignore_transformations = MagickFalse; + if ((value=AccessDefinition(image_info,"heif","ignore-transformations"))) + if (LocaleCompare(value,"TRUE") == 0) + ignore_transformations = MagickTrue; + + if (!ignore_transformations) + { + const ImageAttribute *attribute = GetImageAttribute(image,"EXIF:Orientation"); + if (attribute && attribute->value) + { + SetImageAttribute(image,"EXIF:Orientation","1"); + image->orientation = UndefinedOrientation; + } + } + } MagickFreeResourceLimitedMemory(profile); } } @@ -610,7 +633,7 @@ } /* Read EXIF and XMP profile */ - if (!ReadMetadata(heif_image_handle, image, exception)) + if (!ReadMetadata(image_info, heif_image_handle, image, exception)) { HEIFReadCleanup(); return NULL; diff -r b91cc8aa0f26 -r 2290d0e25d1d coders/jpeg.c --- a/coders/jpeg.c Fri Jan 24 09:53:11 2025 -0600 +++ b/coders/jpeg.c Sat Jan 25 08:43:21 2025 -0600 @@ -1,5 +1,5 @@ /* -% Copyright (C) 2003-2023 GraphicsMagick Group +% Copyright (C) 2003-2025 GraphicsMagick Group % Copyright (C) 2002 ImageMagick Studio % Copyright 1991-1999 E. I. du Pont de Nemours and Company % diff -r b91cc8aa0f26 -r 2290d0e25d1d magick/version.h --- a/magick/version.h Fri Jan 24 09:53:11 2025 -0600 +++ b/magick/version.h Sat Jan 25 08:43:21 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250124" -#define MagickReleaseDate "snapshot-20250124" +#define MagickChangeDate "20250125" +#define MagickReleaseDate "snapshot-20250125" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r b91cc8aa0f26 -r 2290d0e25d1d tests/rwfile.c --- a/tests/rwfile.c Fri Jan 24 09:53:11 2025 -0600 +++ b/tests/rwfile.c Sat Jan 25 08:43:21 2025 -0600 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2024 GraphicsMagick Group + * Copyright (C) 2003-2025 GraphicsMagick Group * Copyright (C) 2003 ImageMagick Studio * Copyright 1991-1999 E. I. du Pont de Nemours and Company * diff -r b91cc8aa0f26 -r 2290d0e25d1d wand/magick_wand.c --- a/wand/magick_wand.c Fri Jan 24 09:53:11 2025 -0600 +++ b/wand/magick_wand.c Sat Jan 25 08:43:21 2025 -0600 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2024 GraphicsMagick Group */ +/* Copyright (C) 2003-2025 GraphicsMagick Group */ /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % diff -r b91cc8aa0f26 -r 2290d0e25d1d www/ChangeLog.html --- a/www/ChangeLog.html Fri Jan 24 09:53:11 2025 -0600 +++ b/www/ChangeLog.html Sat Jan 25 08:43:21 2025 -0600 @@ -38,6 +38,16 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-01-25 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> +<blockquote> +<ul class="simple"> +<li><p>coders/heif.c (ReadMetadata): Only apply Exif orientation if +ignore-transformations is true since HEIF native transformations +will handle orientation otherwise. Patch by Kevin Clauson via +GraphicsMagick SourceForge patch #83 "Patch: Fix HEIC Orientation +Issue".</p></li> +</ul> +</blockquote> <p>2025-01-24 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> <blockquote> <ul class="simple">