graphicsmagick-commit Mailing List for GraphicsMagick
Swiss army knife of image processing
Brought to you by:
bfriesen
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(63) |
Mar
(86) |
Apr
(127) |
May
(136) |
Jun
(90) |
Jul
(38) |
Aug
(91) |
Sep
(81) |
Oct
(72) |
Nov
(53) |
Dec
(75) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(75) |
Feb
(61) |
Mar
(70) |
Apr
(56) |
May
(20) |
Jun
(27) |
Jul
(37) |
Aug
(39) |
Sep
(14) |
Oct
(7) |
Nov
(23) |
Dec
(25) |
| 2005 |
Jan
(50) |
Feb
(5) |
Mar
(44) |
Apr
(28) |
May
(14) |
Jun
(8) |
Jul
(11) |
Aug
(9) |
Sep
(10) |
Oct
(8) |
Nov
(10) |
Dec
(21) |
| 2006 |
Jan
(14) |
Feb
(7) |
Mar
(9) |
Apr
(7) |
May
(3) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
|
| 2007 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(10) |
May
(8) |
Jun
(12) |
Jul
(115) |
Aug
(47) |
Sep
(58) |
Oct
(10) |
Nov
(6) |
Dec
(23) |
| 2008 |
Jan
(16) |
Feb
(20) |
Mar
(21) |
Apr
(62) |
May
(75) |
Jun
(68) |
Jul
(34) |
Aug
(33) |
Sep
(55) |
Oct
(74) |
Nov
(69) |
Dec
(55) |
| 2009 |
Jan
(58) |
Feb
(11) |
Mar
(18) |
Apr
(32) |
May
(81) |
Jun
(43) |
Jul
(55) |
Aug
(33) |
Sep
(69) |
Oct
(30) |
Nov
(31) |
Dec
(20) |
| 2010 |
Jan
(48) |
Feb
(49) |
Mar
(37) |
Apr
(6) |
May
(8) |
Jun
(12) |
Jul
(4) |
Aug
(6) |
Sep
(10) |
Oct
|
Nov
(14) |
Dec
(12) |
| 2011 |
Jan
(27) |
Feb
(12) |
Mar
(2) |
Apr
(10) |
May
(7) |
Jun
(13) |
Jul
(11) |
Aug
(7) |
Sep
(15) |
Oct
(18) |
Nov
(24) |
Dec
(34) |
| 2012 |
Jan
(21) |
Feb
(16) |
Mar
(14) |
Apr
(32) |
May
(29) |
Jun
(25) |
Jul
(10) |
Aug
(29) |
Sep
(26) |
Oct
(31) |
Nov
(20) |
Dec
(37) |
| 2013 |
Jan
(19) |
Feb
(23) |
Mar
(24) |
Apr
(7) |
May
(1) |
Jun
(1) |
Jul
(2) |
Aug
(9) |
Sep
(11) |
Oct
(8) |
Nov
(5) |
Dec
(27) |
| 2014 |
Jan
(14) |
Feb
(13) |
Mar
(15) |
Apr
(13) |
May
(4) |
Jun
(12) |
Jul
(12) |
Aug
(36) |
Sep
(1) |
Oct
(6) |
Nov
(30) |
Dec
(34) |
| 2015 |
Jan
(57) |
Feb
(43) |
Mar
(77) |
Apr
(133) |
May
(43) |
Jun
(7) |
Jul
(22) |
Aug
(8) |
Sep
(14) |
Oct
(7) |
Nov
(14) |
Dec
(2) |
| 2016 |
Jan
|
Feb
(3) |
Mar
(37) |
Apr
(31) |
May
(48) |
Jun
(9) |
Jul
(4) |
Aug
(30) |
Sep
(24) |
Oct
(24) |
Nov
(6) |
Dec
(10) |
| 2017 |
Jan
(20) |
Feb
(3) |
Mar
(15) |
Apr
(1) |
May
(4) |
Jun
(18) |
Jul
(58) |
Aug
(39) |
Sep
(52) |
Oct
(38) |
Nov
(35) |
Dec
(32) |
| 2018 |
Jan
(34) |
Feb
(78) |
Mar
(57) |
Apr
(90) |
May
(53) |
Jun
(54) |
Jul
(13) |
Aug
(33) |
Sep
(23) |
Oct
(18) |
Nov
(22) |
Dec
(21) |
| 2019 |
Jan
(4) |
Feb
(37) |
Mar
(23) |
Apr
(29) |
May
(43) |
Jun
(39) |
Jul
(9) |
Aug
(19) |
Sep
(15) |
Oct
(9) |
Nov
(11) |
Dec
(40) |
| 2020 |
Jan
(33) |
Feb
(25) |
Mar
(19) |
Apr
(10) |
May
(4) |
Jun
(9) |
Jul
(16) |
Aug
(11) |
Sep
(6) |
Oct
(8) |
Nov
(35) |
Dec
(43) |
| 2021 |
Jan
(22) |
Feb
(20) |
Mar
(25) |
Apr
(11) |
May
(5) |
Jun
(12) |
Jul
(8) |
Aug
(2) |
Sep
(3) |
Oct
(5) |
Nov
(6) |
Dec
(48) |
| 2022 |
Jan
(28) |
Feb
(12) |
Mar
(13) |
Apr
(14) |
May
(5) |
Jun
(2) |
Jul
(4) |
Aug
(14) |
Sep
(19) |
Oct
(45) |
Nov
(55) |
Dec
(57) |
| 2023 |
Jan
(48) |
Feb
(11) |
Mar
(23) |
Apr
(34) |
May
(30) |
Jun
(23) |
Jul
(12) |
Aug
(56) |
Sep
(59) |
Oct
(29) |
Nov
(31) |
Dec
(30) |
| 2024 |
Jan
(41) |
Feb
(35) |
Mar
(7) |
Apr
(5) |
May
(12) |
Jun
(7) |
Jul
(10) |
Aug
(13) |
Sep
(20) |
Oct
(14) |
Nov
(11) |
Dec
(4) |
| 2025 |
Jan
(11) |
Feb
(9) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: GraphicsMagick C. <gra...@li...> - 2025-03-02 15:18:27
|
changeset b42e70b0329d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b42e70b0329d summary: ReadJP2Image(): Add casts in order to avoid compilation warnings with old Jasper. diffstat: ChangeLog | 5 +++++ VisualMagick/installer/inc/version.isx | 4 ++-- coders/jp2.c | 22 +++++++++++----------- magick/version.h | 4 ++-- www/ChangeLog.html | 7 +++++++ 5 files changed, 27 insertions(+), 15 deletions(-) diffs (91 lines): diff -r 9927dcc677d0 -r b42e70b0329d ChangeLog --- a/ChangeLog Sat Mar 01 09:04:14 2025 -0600 +++ b/ChangeLog Sun Mar 02 09:17:51 2025 -0600 @@ -1,3 +1,8 @@ +2025-03-02 Bob Friesenhahn <bfr...@si...> + + * coders/jp2.c (ReadJP2Image): Add casts in order to avoid + compilation warnings with old Jasper. + 2025-03-01 Bob Friesenhahn <bfr...@si...> * README.txt: Refresh README text. diff -r 9927dcc677d0 -r b42e70b0329d VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sat Mar 01 09:04:14 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Sun Mar 02 09:17:51 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250301" -#define public MagickPackageReleaseDate "snapshot-20250301" +#define public MagickPackageVersionAddendum ".020250302" +#define public MagickPackageReleaseDate "snapshot-20250302" diff -r 9927dcc677d0 -r b42e70b0329d coders/jp2.c --- a/coders/jp2.c Sat Mar 01 09:04:14 2025 -0600 +++ b/coders/jp2.c Sun Mar 02 09:17:51 2025 -0600 @@ -1,5 +1,5 @@ /* -% Copyright (C) 2003-2022 GraphicsMagick Group +% Copyright (C) 2003-2025 GraphicsMagick Group % Copyright (C) 2002 ImageMagick Studio % % This program is covered by multiple licenses, which are described in @@ -987,16 +987,16 @@ " depth = %u\n" /* depth */ " signed sample data = %d", /* signedness of the sample data (true == signed) */ component, - jas_image_cmptwidth(jp2_image,components[component]), - jas_image_cmptheight(jp2_image,components[component]), - jas_image_cmpttlx(jp2_image, components[component]), - jas_image_cmpttly(jp2_image, components[component]), - jas_image_cmptbrx(jp2_image, components[component]), - jas_image_cmptbry(jp2_image, components[component]), - jas_image_cmpthstep(jp2_image, components[component]), - jas_image_cmptvstep(jp2_image, components[component]), - jas_image_cmptprec(jp2_image,components[component]), - jas_image_cmptsgnd(jp2_image, components[component])); + (long) jas_image_cmptwidth(jp2_image,components[component]), + (long) jas_image_cmptheight(jp2_image,components[component]), + (long) jas_image_cmpttlx(jp2_image, components[component]), + (long) jas_image_cmpttly(jp2_image, components[component]), + (long) jas_image_cmptbrx(jp2_image, components[component]), + (long) jas_image_cmptbry(jp2_image, components[component]), + (long) jas_image_cmpthstep(jp2_image, components[component]), + (long) jas_image_cmptvstep(jp2_image, components[component]), + (unsigned int) jas_image_cmptprec(jp2_image,components[component]), + (int) jas_image_cmptsgnd(jp2_image, components[component])); } } for (component=0; component < number_components; component++) diff -r 9927dcc677d0 -r b42e70b0329d magick/version.h --- a/magick/version.h Sat Mar 01 09:04:14 2025 -0600 +++ b/magick/version.h Sun Mar 02 09:17:51 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250301" -#define MagickReleaseDate "snapshot-20250301" +#define MagickChangeDate "20250302" +#define MagickReleaseDate "snapshot-20250302" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 9927dcc677d0 -r b42e70b0329d www/ChangeLog.html --- a/www/ChangeLog.html Sat Mar 01 09:04:14 2025 -0600 +++ b/www/ChangeLog.html Sun Mar 02 09:17:51 2025 -0600 @@ -38,6 +38,13 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-03-02 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/jp2.c (ReadJP2Image): Add casts in order to avoid +compilation warnings with old Jasper.</p></li> +</ul> +</blockquote> <p>2025-03-01 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-03-01 15:05:06
|
changeset 9927dcc677d0 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9927dcc677d0 summary: README.txt: Refresh README text. diffstat: ChangeLog | 4 + README.txt | 94 ++++++++++++++------------------- VisualMagick/installer/inc/version.isx | 4 +- magick/version.h | 4 +- www/ChangeLog.html | 6 ++ www/README.html | 96 ++++++++++++++------------------- 6 files changed, 95 insertions(+), 113 deletions(-) diffs (393 lines): diff -r 99e719a64589 -r 9927dcc677d0 ChangeLog --- a/ChangeLog Mon Feb 17 09:36:18 2025 -0600 +++ b/ChangeLog Sat Mar 01 09:04:14 2025 -0600 @@ -1,3 +1,7 @@ +2025-03-01 Bob Friesenhahn <bfr...@si...> + + * README.txt: Refresh README text. + 2025-02-14 Bob Friesenhahn <bfr...@si...> * wand/magick_wand.c: Fix comment indentation issue which was diff -r 99e719a64589 -r 9927dcc677d0 README.txt --- a/README.txt Mon Feb 17 09:36:18 2025 -0600 +++ b/README.txt Sat Mar 01 09:04:14 2025 -0600 @@ -9,20 +9,23 @@ .. contents:: :local: -Executive Summary ------------------ +Introduction +------------ GraphicsMagick provides a comprehensive collection of utilities, programming interfaces, and GUIs, to support file format conversion, image processing, and 2D vector rendering. -GraphicsMagick is originally based on ImageMagick from ImageMagick Studio -(which was originally written by John Cristy at Dupont). The goal of -GraphicsMagick is to provide the highest quality product possible while -encouraging open and active participation from all interested developers. -The GraphicsMagick usage license is designed to allow it to be used for -any application, including proprietary or GPLed applications. Please see -the file `Copyright.txt <Copyright.html>`_ for the GraphicsMagick licence. +GraphicsMagick is originally based on ImageMagick from ImageMagick +Studio (which was originally written by John Cristy at Dupont), but +forking from it in late 2002, and becoming independent from it, while +retaining the MIT-style license. The goal of GraphicsMagick is to +provide the highest quality product possible while encouraging open +and active participation from all interested developers. The +GraphicsMagick usage license is designed to allow it to be used for +any application, including proprietary or GPLed applications. Please +see the file `Copyright.txt <Copyright.html>`_ for the GraphicsMagick +licence. Availability ------------ @@ -33,7 +36,7 @@ GraphicsMagick is a continual work in progress. The very latest code is available via the Mercurial distributed source control management tool (https://www.mercurial-scm.org/). GraphicsMagick may be retrieved -from foss.heptapod.net or SourceForge via the following commands: +from foss.heptapod.net or SourceForge via one of the following commands: hg clone https://foss.heptapod.net/graphicsmagick/graphicsmagick GM @@ -43,7 +46,7 @@ the full history of the GraphicsMagick project. You may use the cloned repository for your own purposes related to GraphicsMagick (e.g. manage local GraphicsMagick changes), and can easily pull -GraphicsMagick updates from the main repository whenever you like. +updates from the main repository whenever you like. Documentation ------------- @@ -123,15 +126,14 @@ https://sourceforge.net/projects/gs-fonts/ - Ghostscript (at the time this text is written in October, 2018) has - been observed to have severe security issues when reading untrusted - Postscript files (does not apply to PDF). Examples of these severe - security issues are being tricked into reading or writing arbitrary - files when executing in "-dSAFER" mode, which which is supposed to - prevent such access. Users of Ghostscript who may encounter - untrusted Postscript files are recommended to assure that all - security patches have been applied and it might be necessary to use - the latest upstream release. + Ghostscript has historically been observed to have severe security + issues when reading untrusted Postscript files (does not apply to + PDF). Examples of these severe security issues are being tricked + into reading or writing arbitrary files when executing in "-dSAFER" + mode, which which is supposed to prevent such access. Users of + Ghostscript who may encounter untrusted Postscript files are + recommended to assure that all security patches have been applied + and it might be necessary to use the latest upstream release. Ghostscript is available for use under both free (GPL) and commercial licenses. We are not lawyers so we can not provide @@ -140,26 +142,9 @@ usage terms if you plan to use it in some sort of commercial situation. - Ghostscript (release 7.0 and later) may optionally install a library - (libgs) under Linux. If this library is installed, GraphicsMagick may - be configured to use it. We do **NOT** recommend using this library - under Unix type systems. The Ghostscript library does not support - concurrency since only one instance of the interpreter is available. - Unix systems will obtain better performance from executing Ghostscript as - an external process since then multiple interpreters may execute at - once on multiple CPU cores. - - If the Ghostscript library is used, then please be aware that - Ghostscript provides its own modified version of libjpeg and - libJasper while GraphicsMagick will be using these libraries as - provided with the system. If Ghostscript is not using the same - libraries, then identically named symbols may be used from the wrong - code, causing confusion or a program crash. If conflicts cause JPEG - to fail (JPEG returns an error regarding expected structure sizes), - it may be necessary to use Ghostscript's copy of libjpeg for - GraphicsMagick, and all delegate libraries which depend on libjpeg, - or convince Ghostscript to build against an unmodified installed - JPEG library (and lose compatibility with some Postscript files). + Ghostscript is used as an external program under Unix-like systems, + but is used via its DLL in the Microsoft Windows Visual Studio + build. * GraphicsMagick requires hp2xx available from @@ -219,13 +204,14 @@ lossless coding mode JPEG extension introduced in IJG JPEG v9 (which is not compatible with standard lossless JPEG!). - GraphicsMagick supports both 8-bit and 12-bit JPEG, but - unfortunately it does not yet support both at once. + GraphicsMagick supports 8-bit, 12-bit, and 16-bit JPEG, provided a + JPEG library (e.g. libjpeg-turbo) which supports those depths. * GraphicsMagick requires the JasPer Project's JasPer library from https://jasper-software.github.io/jasper/ to read and write the JPEG-2000 format. Due to security concerns, using the latest - version of JasPer (3.0.0 or later) is recommended. + version of JasPer is always recommended. Note that modern JasPer + requires C'11 (2011) language support. * On Unix-type systems, Windows/MinGW, and Windows/Cygwin, GraphicsMagick requires libltdl from libtool in order to support @@ -251,14 +237,17 @@ https://libtiff.gitlab.io/libtiff/ to read the TIFF image format. It in turn optionally requires the - JPEG and ZLIB libraries. Libtiff 3.8.2 or later is recommended. + JBIG, JPEG, LERC, Deflate, LZMA, ZSTD, WebP, and ZLIB libraries. + Libtiff 3.9.7 or later is required, but a recent release is always + recommended. * GraphicsMagick requires libzip available via HTTPS at https://libzip.org/ in in order to read the ORA format. It in turn optionally requires - libbzip2 and OpenSSL libraries. + ZLIB, BZip2, LZMA (xz), ZSTD, and a crypto library (Common Crypto, + GnuTLS, mbed TLS, OpenSSL, or Windows Cryptography). * GraphicsMagick may optionally use the TRIO library from @@ -286,15 +275,12 @@ * GraphicsMagick may optionally use the umem memory allocation library which is included in Sun's Solaris operating system, and - OpenSolaris/Illumos derivatives, or available from - - https://github.com/omniti-labs/portableumem - - to provide enhanced versions of the standard memory allocation - facilities. Use of umem may improve performance for multi-threaded - programs and provides access to debugging features that detect memory - leaks, buffer overruns, multiple frees, use of uninitialized data, use - of freed data, and many other common programming errors. + OpenSolaris/Illumos derivatives, to provide enhanced versions of the + standard memory allocation facilities. Use of umem may improve + performance for multi-threaded programs and provides access to + debugging features that detect memory leaks, buffer overruns, + multiple frees, use of uninitialized data, use of freed data, and + many other common programming errors. * GraphicsMagick requires libwmflite from libwmf 0.2.5 (or later) from diff -r 99e719a64589 -r 9927dcc677d0 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Mon Feb 17 09:36:18 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Sat Mar 01 09:04:14 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250214" -#define public MagickPackageReleaseDate "snapshot-20250214" +#define public MagickPackageVersionAddendum ".020250301" +#define public MagickPackageReleaseDate "snapshot-20250301" diff -r 99e719a64589 -r 9927dcc677d0 magick/version.h --- a/magick/version.h Mon Feb 17 09:36:18 2025 -0600 +++ b/magick/version.h Sat Mar 01 09:04:14 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250214" -#define MagickReleaseDate "snapshot-20250214" +#define MagickChangeDate "20250301" +#define MagickReleaseDate "snapshot-20250301" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 99e719a64589 -r 9927dcc677d0 www/ChangeLog.html --- a/www/ChangeLog.html Mon Feb 17 09:36:18 2025 -0600 +++ b/www/ChangeLog.html Sat Mar 01 09:04:14 2025 -0600 @@ -38,6 +38,12 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-03-01 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>README.txt: Refresh README text.</p></li> +</ul> +</blockquote> <p>2025-02-14 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"> diff -r 99e719a64589 -r 9927dcc677d0 www/README.html --- a/www/README.html Mon Feb 17 09:36:18 2025 -0600 +++ b/www/README.html Sat Mar 01 09:04:14 2025 -0600 @@ -43,25 +43,28 @@ <!-- See http://docutils.sourceforge.net/rst.html for details. --> <div class="contents local topic" id="contents"> <ul class="simple"> -<li><p><a class="reference internal" href="#executive-summary" id="id1">Executive Summary</a></p></li> +<li><p><a class="reference internal" href="#introduction" id="id1">Introduction</a></p></li> <li><p><a class="reference internal" href="#availability" id="id2">Availability</a></p></li> <li><p><a class="reference internal" href="#documentation" id="id3">Documentation</a></p></li> <li><p><a class="reference internal" href="#installation" id="id4">Installation</a></p></li> <li><p><a class="reference internal" href="#add-on-libraries-programs" id="id5">Add-On Libraries & Programs</a></p></li> </ul> </div> -<section id="executive-summary"> -<h1><a class="toc-backref" href="#id1">Executive Summary</a></h1> +<section id="introduction"> +<h1><a class="toc-backref" href="#id1">Introduction</a></h1> <p>GraphicsMagick provides a comprehensive collection of utilities, programming interfaces, and GUIs, to support file format conversion, image processing, and 2D vector rendering.</p> -<p>GraphicsMagick is originally based on ImageMagick from ImageMagick Studio -(which was originally written by John Cristy at Dupont). The goal of -GraphicsMagick is to provide the highest quality product possible while -encouraging open and active participation from all interested developers. -The GraphicsMagick usage license is designed to allow it to be used for -any application, including proprietary or GPLed applications. Please see -the file <a class="reference external" href="Copyright.html">Copyright.txt</a> for the GraphicsMagick licence.</p> +<p>GraphicsMagick is originally based on ImageMagick from ImageMagick +Studio (which was originally written by John Cristy at Dupont), but +forking from it in late 2002, and becoming independent from it, while +retaining the MIT-style license. The goal of GraphicsMagick is to +provide the highest quality product possible while encouraging open +and active participation from all interested developers. The +GraphicsMagick usage license is designed to allow it to be used for +any application, including proprietary or GPLed applications. Please +see the file <a class="reference external" href="Copyright.html">Copyright.txt</a> for the GraphicsMagick +licence.</p> </section> <section id="availability"> <h1><a class="toc-backref" href="#id2">Availability</a></h1> @@ -70,7 +73,7 @@ <p>GraphicsMagick is a continual work in progress. The very latest code is available via the Mercurial distributed source control management tool (<a class="reference external" href="https://www.mercurial-scm.org/">https://www.mercurial-scm.org/</a>). GraphicsMagick may be retrieved -from foss.heptapod.net or SourceForge via the following commands:</p> +from foss.heptapod.net or SourceForge via one of the following commands:</p> <blockquote> <p>hg clone <a class="reference external" href="https://foss.heptapod.net/graphicsmagick/graphicsmagick">https://foss.heptapod.net/graphicsmagick/graphicsmagick</a> GM</p> <p>hg clone <a class="reference external" href="http://hg.code.sf.net/p/graphicsmagick/code/">http://hg.code.sf.net/p/graphicsmagick/code/</a> GM</p> @@ -79,7 +82,7 @@ the full history of the GraphicsMagick project. You may use the cloned repository for your own purposes related to GraphicsMagick (e.g. manage local GraphicsMagick changes), and can easily pull -GraphicsMagick updates from the main repository whenever you like.</p> +updates from the main repository whenever you like.</p> </section> <section id="documentation"> <h1><a class="toc-backref" href="#id3">Documentation</a></h1> @@ -159,40 +162,23 @@ <blockquote> <p><a class="reference external" href="https://sourceforge.net/projects/gs-fonts/">https://sourceforge.net/projects/gs-fonts/</a></p> </blockquote> -<p>Ghostscript (at the time this text is written in October, 2018) has -been observed to have severe security issues when reading untrusted -Postscript files (does not apply to PDF). Examples of these severe -security issues are being tricked into reading or writing arbitrary -files when executing in "-dSAFER" mode, which which is supposed to -prevent such access. Users of Ghostscript who may encounter -untrusted Postscript files are recommended to assure that all -security patches have been applied and it might be necessary to use -the latest upstream release.</p> +<p>Ghostscript has historically been observed to have severe security +issues when reading untrusted Postscript files (does not apply to +PDF). Examples of these severe security issues are being tricked +into reading or writing arbitrary files when executing in "-dSAFER" +mode, which which is supposed to prevent such access. Users of +Ghostscript who may encounter untrusted Postscript files are +recommended to assure that all security patches have been applied +and it might be necessary to use the latest upstream release.</p> <p>Ghostscript is available for use under both free (GPL) and commercial licenses. We are not lawyers so we can not provide advice as to when the commercial license from Artifex is required. Please make sure that you are aware of Ghostscript licencing and usage terms if you plan to use it in some sort of commercial situation.</p> -<p>Ghostscript (release 7.0 and later) may optionally install a library -(libgs) under Linux. If this library is installed, GraphicsMagick may -be configured to use it. We do <strong>NOT</strong> recommend using this library -under Unix type systems. The Ghostscript library does not support -concurrency since only one instance of the interpreter is available. -Unix systems will obtain better performance from executing Ghostscript as -an external process since then multiple interpreters may execute at -once on multiple CPU cores.</p> -<p>If the Ghostscript library is used, then please be aware that -Ghostscript provides its own modified version of libjpeg and -libJasper while GraphicsMagick will be using these libraries as -provided with the system. If Ghostscript is not using the same -libraries, then identically named symbols may be used from the wrong -code, causing confusion or a program crash. If conflicts cause JPEG -to fail (JPEG returns an error regarding expected structure sizes), -it may be necessary to use Ghostscript's copy of libjpeg for -GraphicsMagick, and all delegate libraries which depend on libjpeg, -or convince Ghostscript to build against an unmodified installed -JPEG library (and lose compatibility with some Postscript files).</p> +<p>Ghostscript is used as an external program under Unix-like systems, +but is used via its DLL in the Microsoft Windows Visual Studio +build.</p> </li> <li><p>GraphicsMagick requires hp2xx available from</p> <blockquote> @@ -251,13 +237,14 @@ SmartScale JPEG extension introduced in IJG JPEG v8, and the lossless coding mode JPEG extension introduced in IJG JPEG v9 (which is not compatible with standard lossless JPEG!).</p> -<p>GraphicsMagick supports both 8-bit and 12-bit JPEG, but -unfortunately it does not yet support both at once.</p> +<p>GraphicsMagick supports 8-bit, 12-bit, and 16-bit JPEG, provided a +JPEG library (e.g. libjpeg-turbo) which supports those depths.</p> </li> <li><p>GraphicsMagick requires the JasPer Project's JasPer library from <a class="reference external" href="https://jasper-software.github.io/jasper/">https://jasper-software.github.io/jasper/</a> to read and write the JPEG-2000 format. Due to security concerns, using the latest -version of JasPer (3.0.0 or later) is recommended.</p></li> +version of JasPer is always recommended. Note that modern JasPer +requires C'11 (2011) language support.</p></li> <li><p>On Unix-type systems, Windows/MinGW, and Windows/Cygwin, GraphicsMagick requires libltdl from libtool in order to support building GraphicsMagick with dynamically loadable modules. Libtool @@ -282,14 +269,17 @@ <p><a class="reference external" href="https://libtiff.gitlab.io/libtiff/">https://libtiff.gitlab.io/libtiff/</a></p> </blockquote> <p>to read the TIFF image format. It in turn optionally requires the -JPEG and ZLIB libraries. Libtiff 3.8.2 or later is recommended.</p> +JBIG, JPEG, LERC, Deflate, LZMA, ZSTD, WebP, and ZLIB libraries. +Libtiff 3.9.7 or later is required, but a recent release is always +recommended.</p> </li> <li><p>GraphicsMagick requires libzip available via HTTPS at</p> <blockquote> <p><a class="reference external" href="https://libzip.org/">https://libzip.org/</a></p> </blockquote> <p>in in order to read the ORA format. It in turn optionally requires -libbzip2 and OpenSSL libraries.</p> +ZLIB, BZip2, LZMA (xz), ZSTD, and a crypto library (Common Crypto, +GnuTLS, mbed TLS, OpenSSL, or Windows Cryptography).</p> </li> <li><p>GraphicsMagick may optionally use the TRIO library from</p> <blockquote> @@ -317,16 +307,12 @@ </li> <li><p>GraphicsMagick may optionally use the umem memory allocation library which is included in Sun's Solaris operating system, and -OpenSolaris/Illumos derivatives, or available from</p> -<blockquote> -<p><a class="reference external" href="https://github.com/omniti-labs/portableumem">https://github.com/omniti-labs/portableumem</a></p> -</blockquote> -<p>to provide enhanced versions of the standard memory allocation -facilities. Use of umem may improve performance for multi-threaded -programs and provides access to debugging features that detect memory -leaks, buffer overruns, multiple frees, use of uninitialized data, use -of freed data, and many other common programming errors.</p> -</li> +OpenSolaris/Illumos derivatives, to provide enhanced versions of the +standard memory allocation facilities. Use of umem may improve +performance for multi-threaded programs and provides access to +debugging features that detect memory leaks, buffer overruns, +multiple frees, use of uninitialized data, use of freed data, and +many other common programming errors.</p></li> <li><p>GraphicsMagick requires libwmflite from libwmf 0.2.5 (or later) from</p> <blockquote> <p><a class="reference external" href="http://sourceforge.net/projects/wvware/">http://sourceforge.net/projects/wvware/</a></p> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-17 15:36:56
|
changeset 99e719a64589 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=99e719a64589 summary: fuzzing/oss-fuzz-build.sh: It seems that libzip still needs -DBUILD_TOOLS=ON :-( diffstat: fuzzing/oss-fuzz-build.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 34d99a28968c -r 99e719a64589 fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Mon Feb 17 09:09:24 2025 -0600 +++ b/fuzzing/oss-fuzz-build.sh Mon Feb 17 09:36:18 2025 -0600 @@ -697,7 +697,7 @@ -DBUILD_EXAMPLES=OFF \ -DBUILD_OSSFUZZ=OFF \ -DBUILD_REGRESS=OFF \ - -DBUILD_TOOLS=OFF \ + -DBUILD_TOOLS=ON \ -DENABLE_GNUTLS=OFF \ -DENABLE_MBEDTLS=OFF \ -DENABLE_OPENSSL=OFF \ |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-17 15:10:08
|
changeset 34d99a28968c in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=34d99a28968c summary: fuzzing/oss-fuzz-build.sh: libzip should now build successfully with -DBUILD_TOOLS=OFF diffstat: fuzzing/oss-fuzz-build.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r b07fe7ec07ae -r 34d99a28968c fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Sun Feb 16 16:19:14 2025 -0600 +++ b/fuzzing/oss-fuzz-build.sh Mon Feb 17 09:09:24 2025 -0600 @@ -697,7 +697,7 @@ -DBUILD_EXAMPLES=OFF \ -DBUILD_OSSFUZZ=OFF \ -DBUILD_REGRESS=OFF \ - -DBUILD_TOOLS=ON \ + -DBUILD_TOOLS=OFF \ -DENABLE_GNUTLS=OFF \ -DENABLE_MBEDTLS=OFF \ -DENABLE_OPENSSL=OFF \ |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-16 22:19:45
|
changeset 502958ac63e9 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=502958ac63e9 summary: OSS-Fuzz build notes update and zlib build fix changeset b07fe7ec07ae in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b07fe7ec07ae summary: fuzzing/oss-fuzz-build.sh: Build zlib outside of source tree. Libzip mysteriously needs -DBUILD_TOOLS=ON to succeed. diffstat: fuzzing/README.txt | 22 +++++++++++----------- fuzzing/oss-fuzz-build.sh | 30 +++++++++++++++++------------- 2 files changed, 28 insertions(+), 24 deletions(-) diffs (124 lines): diff -r 3f193f5aefd8 -r b07fe7ec07ae fuzzing/README.txt --- a/fuzzing/README.txt Fri Feb 14 11:14:05 2025 -0600 +++ b/fuzzing/README.txt Sun Feb 16 16:19:14 2025 -0600 @@ -37,7 +37,7 @@ Pull the latest Docker images:: - $ python infra/helper.py pull_images + $ python3 infra/helper.py pull_images Optionally remove the existing build directory (in git checkout): @@ -49,39 +49,39 @@ Build the project image:: - python infra/helper.py build_image graphicsmagick + python3 infra/helper.py build_image graphicsmagick Build project fuzzer target:: - python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ + python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ --architecture <x86_64/i386> graphicsmagick - python infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick + python3 infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick Reproduce using local source checkout (mount local sources into the running container):: - python infra/helper.py build_fuzzers \ + python3 infra/helper.py build_fuzzers \ --sanitizer <address/memory/undefined> graphicsmagick <source_path> - python infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick <source_path> - python infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> + python3 infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick <source_path> + python3 infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> Reproducing bugs:: - $ python infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> + $ python3 infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> Check the build (this can take very long!):: - python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ + python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ --engine <libfuzzer/afl/honggfuzz/centipede> --architecture <x86_64/i386> graphicsmagick - python infra/helper.py check_build --sanitizer <address/memory/undefined> \ + python3 infra/helper.py check_build --sanitizer <address/memory/undefined> \ --engine <libfuzzer/afl/honggfuzz/centipede> --architecture <x86_64/i386> graphicsmagick \ <fuzz_target_name> Get a shell into the container and compile:: - python infra/helper.py shell --sanitizer address --architecture x86_64 graphicsmagick + python3 infra/helper.py shell --sanitizer address --architecture x86_64 graphicsmagick compile 2>&1 | tee build.log Copy fuzzing build script into running container (given simultaneous shell session):: diff -r 3f193f5aefd8 -r b07fe7ec07ae fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Fri Feb 14 11:14:05 2025 -0600 +++ b/fuzzing/oss-fuzz-build.sh Sun Feb 16 16:19:14 2025 -0600 @@ -65,6 +65,7 @@ enable_x265=true enable_xml=false enable_xz=true +enable_zlib=true enable_zstd=true export PKG_CONFIG_PATH="$WORK/lib/pkgconfig" @@ -98,14 +99,21 @@ # build zlib # PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static zlib --libs # -L/work/lib -lz -printf "=== Building zlib...\n" -pushd "$SRC/zlib" -./configure \ - --static \ - --prefix="$WORK" -make -j$(nproc) CFLAGS="$CFLAGS -fPIC" -make install -popd +if $enable_zlib +then + printf "=== Building zlib...\n" + ZLIB_SRC="${SRC}/zlib" + ZLIB_BUILD="${SRC}/zlib_build" + rm -rf "${ZLIB_BUILD}" + mkdir -p "${ZLIB_BUILD}" + pushd "${ZLIB_BUILD}" + ${ZLIB_SRC}/configure \ + --static \ + --prefix="$WORK" + make -j$(nproc) CFLAGS="$CFLAGS -fPIC" + make install + popd +fi # build xz # PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static liblzma --libs @@ -680,10 +688,7 @@ pushd ${LIBZIP_BUILD} cmake \ -DBUILD_SHARED_LIBS=off \ - -DBUILD_TESTING=off \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_CXX_COMPILER=$CXX \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \ -DCMAKE_INSTALL_PREFIX=$WORK \ @@ -692,8 +697,7 @@ -DBUILD_EXAMPLES=OFF \ -DBUILD_OSSFUZZ=OFF \ -DBUILD_REGRESS=OFF \ - -DBUILD_TOOLS=OFF \ - -DBUILD_TOOLS=OFF \ + -DBUILD_TOOLS=ON \ -DENABLE_GNUTLS=OFF \ -DENABLE_MBEDTLS=OFF \ -DENABLE_OPENSSL=OFF \ |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-14 17:19:07
|
changeset 3f193f5aefd8 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=3f193f5aefd8 summary: wand/magick_wand.c: Fix comment indentation issue which was causing some functions to not appear in the formatted documentation. diffstat: ChangeLog | 7 + VisualMagick/installer/inc/version.isx | 4 +- magick/version.h | 4 +- wand/magick_wand.c | 288 ++-- www/ChangeLog.html | 9 + www/wand/magick_wand.html | 1728 +++++++++++++++++-------------- 6 files changed, 1098 insertions(+), 942 deletions(-) diffs (truncated from 4330 to 500 lines): diff -r 608941732ea8 -r 3f193f5aefd8 ChangeLog --- a/ChangeLog Tue Feb 11 12:37:40 2025 -0600 +++ b/ChangeLog Fri Feb 14 11:14:05 2025 -0600 @@ -1,3 +1,10 @@ +2025-02-14 Bob Friesenhahn <bfr...@si...> + + * wand/magick_wand.c: Fix comment indentation issue which was + causing some functions to not appear in the formatted + documentation. Thanks to Robert C. <ro...@us...> + for reporting that documentation for some functions were missing. + 2025-02-11 Bob Friesenhahn <bfr...@si...> * magick/nt_base.h: Update notes regarding `_MSC_VER` values and diff -r 608941732ea8 -r 3f193f5aefd8 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Tue Feb 11 12:37:40 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Fri Feb 14 11:14:05 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250211" -#define public MagickPackageReleaseDate "snapshot-20250211" +#define public MagickPackageVersionAddendum ".020250214" +#define public MagickPackageReleaseDate "snapshot-20250214" diff -r 608941732ea8 -r 3f193f5aefd8 magick/version.h --- a/magick/version.h Tue Feb 11 12:37:40 2025 -0600 +++ b/magick/version.h Fri Feb 14 11:14:05 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250211" -#define MagickReleaseDate "snapshot-20250211" +#define MagickChangeDate "20250214" +#define MagickReleaseDate "snapshot-20250214" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 608941732ea8 -r 3f193f5aefd8 wand/magick_wand.c --- a/wand/magick_wand.c Tue Feb 11 12:37:40 2025 -0600 +++ b/wand/magick_wand.c Fri Feb 14 11:14:05 2025 -0600 @@ -3756,28 +3756,28 @@ return(wand->image->gamma); } /* - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % % - % % - % % - % M a g i c k G e t I m a g e G e o m e t r y % - % % - % % - % % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % MagickGetImageGeometry() gets the image geometry string. NULL is - % returned if the image does not contain a geometry string. - % - % The format of the MagickGetImageGeometry method is: - % - % const char *MagickGetImageGeometry(MagickWand *wand) - % - % A description of each parameter follows: - % - % o wand: The magick wand. - % - */ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M a g i c k G e t I m a g e G e o m e t r y % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickGetImageGeometry() gets the image geometry string. NULL is +% returned if the image does not contain a geometry string. +% +% The format of the MagickGetImageGeometry method is: +% +% const char *MagickGetImageGeometry(MagickWand *wand) +% +% A description of each parameter follows: +% +% o wand: The magick wand. +% +*/ WandExport const char *MagickGetImageGeometry(MagickWand *wand) { assert(wand != (MagickWand *) NULL); @@ -4042,28 +4042,28 @@ return(wand->image->iterations); } /* - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % % - % % - % % - % M a g i c k G e t I m a g e M a t t e % - % % - % % - % % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % MagickGetImageMatte() gets the image matte flag. The flag is MagickTrue - % if the image supports an opacity (inverse of transparency) channel. - % - % The format of the MagickGetImageMatte method is: - % - % MagickBool MagickGetImageMatte(MagickWand *wand) - % - % A description of each parameter follows: - % - % o wand: The magick wand. - % - */ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M a g i c k G e t I m a g e M a t t e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickGetImageMatte() gets the image matte flag. The flag is MagickTrue +% if the image supports an opacity (inverse of transparency) channel. +% +% The format of the MagickGetImageMatte method is: +% +% MagickBool MagickGetImageMatte(MagickWand *wand) +% +% A description of each parameter follows: +% +% o wand: The magick wand. +% +*/ WandExport MagickBool MagickGetImageMatte(MagickWand *wand) { assert(wand != (MagickWand *) NULL); @@ -6386,56 +6386,56 @@ } /* - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % % - % % - % % - % M a g i c k O p e r a t o r I m a g e C h a n n e l % - % % - % % - % % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % MagickOperatorImageChannel() performs the requested arithmetic, - % bitwise-logical, or value operation on the selected channels of - % the entire image. The AllChannels channel option operates on all - % color channels whereas the GrayChannel channel option treats the - % color channels as a grayscale intensity. - % - % These operations are on the DirectClass pixels of the image and do not - % update pixel indexes or colormap. - % - % The format of the MagickOperatorImageChannel method is: - % - % MagickPassFail MagickOperatorImageChannel(MagickWand *wand, - % const ChannelType channel,const QuantumOperator quantum_operator, - % const double rvalue) - % - % A description of each parameter follows: - % - % o wand: The magick wand. - % - % o channel: Channel to operate on (RedChannel, CyanChannel, - % GreenChannel, MagentaChannel, BlueChannel, YellowChannel, - % OpacityChannel, BlackChannel, MatteChannel, AllChannels, - % GrayChannel). The AllChannels type only updates color - % channels. The GrayChannel type treats the color channels - % as if they represent an intensity. - % - % o quantum_operator: Operator to use (AddQuantumOp,AndQuantumOp, - % AssignQuantumOp, DepthQuantumOp, DivideQuantumOp, GammaQuantumOp, - % LShiftQuantumOp, MultiplyQuantumOp, NegateQuantumOp, - % NoiseGaussianQuantumOp, NoiseImpulseQuantumOp, - % NoiseLaplacianQuantumOp, NoiseMultiplicativeQuantumOp, - % NoisePoissonQuantumOp, NoiseRandomQuantumOp, NoiseUniformQuantumOp, - % OrQuantumOp, RShiftQuantumOp, SubtractQuantumOp, - % ThresholdBlackQuantumOp, ThresholdQuantumOp, ThresholdWhiteQuantumOp, - % ThresholdBlackNegateQuantumOp, ThresholdWhiteNegateQuantumOp, - % XorQuantumOp). - % - % o rvalue: Operator argument. - % - */ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M a g i c k O p e r a t o r I m a g e C h a n n e l % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickOperatorImageChannel() performs the requested arithmetic, +% bitwise-logical, or value operation on the selected channels of +% the entire image. The AllChannels channel option operates on all +% color channels whereas the GrayChannel channel option treats the +% color channels as a grayscale intensity. +% +% These operations are on the DirectClass pixels of the image and do not +% update pixel indexes or colormap. +% +% The format of the MagickOperatorImageChannel method is: +% +% MagickPassFail MagickOperatorImageChannel(MagickWand *wand, +% const ChannelType channel,const QuantumOperator quantum_operator, +% const double rvalue) +% +% A description of each parameter follows: +% +% o wand: The magick wand. +% +% o channel: Channel to operate on (RedChannel, CyanChannel, +% GreenChannel, MagentaChannel, BlueChannel, YellowChannel, +% OpacityChannel, BlackChannel, MatteChannel, AllChannels, +% GrayChannel). The AllChannels type only updates color +% channels. The GrayChannel type treats the color channels +% as if they represent an intensity. +% +% o quantum_operator: Operator to use (AddQuantumOp,AndQuantumOp, +% AssignQuantumOp, DepthQuantumOp, DivideQuantumOp, GammaQuantumOp, +% LShiftQuantumOp, MultiplyQuantumOp, NegateQuantumOp, +% NoiseGaussianQuantumOp, NoiseImpulseQuantumOp, +% NoiseLaplacianQuantumOp, NoiseMultiplicativeQuantumOp, +% NoisePoissonQuantumOp, NoiseRandomQuantumOp, NoiseUniformQuantumOp, +% OrQuantumOp, RShiftQuantumOp, SubtractQuantumOp, +% ThresholdBlackQuantumOp, ThresholdQuantumOp, ThresholdWhiteQuantumOp, +% ThresholdBlackNegateQuantumOp, ThresholdWhiteNegateQuantumOp, +% XorQuantumOp). +% +% o rvalue: Operator argument. +% +*/ WandExport unsigned int MagickOperatorImageChannel(MagickWand *wand, const ChannelType channel, @@ -8705,30 +8705,30 @@ } /* - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % % - % % - % % - % M a g i c k S e t I m a g e G e o m e t r y % - % % - % % - % % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % MagickSetImageGeometry() sets the image geometry string. - % - % The format of the MagickSetImageGeometry method is: - % - % unsigned int MagickSetImageGeometry(MagickWand *wand, - % const char *geometry) - % - % A description of each parameter follows: - % - % o wand: The magick wand. - % - % o geometry: The image geometry. - % - */ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M a g i c k S e t I m a g e G e o m e t r y % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickSetImageGeometry() sets the image geometry string. +% +% The format of the MagickSetImageGeometry method is: +% +% unsigned int MagickSetImageGeometry(MagickWand *wand, +% const char *geometry) +% +% A description of each parameter follows: +% +% o wand: The magick wand. +% +% o geometry: The image geometry. +% +*/ WandExport unsigned int MagickSetImageGeometry(MagickWand *wand, const char *geometry) { @@ -8945,32 +8945,32 @@ } /* - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % % - % % - % % - % M a g i c k S e t I m a g e M a t t e % - % % - % % - % % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % MagickSetImageMatte() sets the image matte flag. The image opacity - % (inverse of transparency) channel is enabled if the matte flag is - % True. - % - % The format of the MagickSetImageMatte method is: - % - % unsigned int MagickSetImageMatte(MagickWand *wand, - % const unsigned int matte) - % - % A description of each parameter follows: - % - % o wand: The magick wand. - % - % o matte: The image matte. - % - */ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M a g i c k S e t I m a g e M a t t e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MagickSetImageMatte() sets the image matte flag. The image opacity +% (inverse of transparency) channel is enabled if the matte flag is +% True. +% +% The format of the MagickSetImageMatte method is: +% +% unsigned int MagickSetImageMatte(MagickWand *wand, +% const unsigned int matte) +% +% A description of each parameter follows: +% +% o wand: The magick wand. +% +% o matte: The image matte. +% +*/ WandExport unsigned int MagickSetImageMatte(MagickWand *wand, const unsigned int matte) { diff -r 608941732ea8 -r 3f193f5aefd8 www/ChangeLog.html --- a/www/ChangeLog.html Tue Feb 11 12:37:40 2025 -0600 +++ b/www/ChangeLog.html Fri Feb 14 11:14:05 2025 -0600 @@ -38,6 +38,15 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-02-14 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>wand/magick_wand.c: Fix comment indentation issue which was +causing some functions to not appear in the formatted +documentation. Thanks to Robert C. <<a class="reference external" href="mailto:robgcs%40users.sourceforge.net">robgcs<span>@</span>users<span>.</span>sourceforge<span>.</span>net</a>> +for reporting that documentation for some functions were missing.</p></li> +</ul> +</blockquote> <p>2025-02-11 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"> diff -r 608941732ea8 -r 3f193f5aefd8 www/wand/magick_wand.html --- a/www/wand/magick_wand.html Tue Feb 11 12:37:40 2025 -0600 +++ b/www/wand/magick_wand.html Fri Feb 14 11:14:05 2025 -0600 @@ -42,247 +42,252 @@ <div class="contents topic" id="contents"> <p class="topic-title">Contents</p> <ul class="simple"> -<li><p><a class="reference internal" href="#clonemagickwand" id="id473">CloneMagickWand</a></p></li> -<li><p><a class="reference internal" href="#destroymagickwand" id="id474">DestroyMagickWand</a></p></li> -<li><p><a class="reference internal" href="#magickadaptivethresholdimage" id="id475">MagickAdaptiveThresholdImage</a></p></li> -<li><p><a class="reference internal" href="#magickaddimage" id="id476">MagickAddImage</a></p></li> -<li><p><a class="reference internal" href="#magickaddnoiseimage" id="id477">MagickAddNoiseImage</a></p></li> -<li><p><a class="reference internal" href="#magickaffinetransformimage" id="id478">MagickAffineTransformImage</a></p></li> -<li><p><a class="reference internal" href="#magickannotateimage" id="id479">MagickAnnotateImage</a></p></li> -<li><p><a class="reference internal" href="#magickanimateimages" id="id480">MagickAnimateImages</a></p></li> -<li><p><a class="reference internal" href="#magickappendimages" id="id481">MagickAppendImages</a></p></li> -<li><p><a class="reference internal" href="#magickautoorientimage" id="id482">MagickAutoOrientImage</a></p></li> -<li><p><a class="reference internal" href="#magickaverageimages" id="id483">MagickAverageImages</a></p></li> -<li><p><a class="reference internal" href="#magickblackthresholdimage" id="id484">MagickBlackThresholdImage</a></p></li> -<li><p><a class="reference internal" href="#magickblurimage" id="id485">MagickBlurImage</a></p></li> -<li><p><a class="reference internal" href="#magickborderimage" id="id486">MagickBorderImage</a></p></li> -<li><p><a class="reference internal" href="#magickcdlimage" id="id487">MagickCdlImage</a></p></li> -<li><p><a class="reference internal" href="#magickcharcoalimage" id="id488">MagickCharcoalImage</a></p></li> -<li><p><a class="reference internal" href="#magickchopimage" id="id489">MagickChopImage</a></p></li> -<li><p><a class="reference internal" href="#magickclearexception" id="id490">MagickClearException</a></p></li> -<li><p><a class="reference internal" href="#magickclipimage" id="id491">MagickClipImage</a></p></li> -<li><p><a class="reference internal" href="#magickclippathimage" id="id492">MagickClipPathImage</a></p></li> -<li><p><a class="reference internal" href="#magickcoalesceimages" id="id493">MagickCoalesceImages</a></p></li> -<li><p><a class="reference internal" href="#magickcolorfloodfillimage" id="id494">MagickColorFloodfillImage</a></p></li> -<li><p><a class="reference internal" href="#magickcolorizeimage" id="id495">MagickColorizeImage</a></p></li> -<li><p><a class="reference internal" href="#magickcommentimage" id="id496">MagickCommentImage</a></p></li> -<li><p><a class="reference internal" href="#magickcompareimagechannels" id="id497">MagickCompareImageChannels</a></p></li> -<li><p><a class="reference internal" href="#magickcompareimages" id="id498">MagickCompareImages</a></p></li> -<li><p><a class="reference internal" href="#magickcompositeimage" id="id499">MagickCompositeImage</a></p></li> -<li><p><a class="reference internal" href="#magickcontrastimage" id="id500">MagickContrastImage</a></p></li> -<li><p><a class="reference internal" href="#magickconvolveimage" id="id501">MagickConvolveImage</a></p></li> -<li><p><a class="reference internal" href="#magickcropimage" id="id502">MagickCropImage</a></p></li> -<li><p><a class="reference internal" href="#magickcyclecolormapimage" id="id503">MagickCycleColormapImage</a></p></li> -<li><p><a class="reference internal" href="#magickdeconstructimages" id="id504">MagickDeconstructImages</a></p></li> -<li><p><a class="reference internal" href="#magickdescribeimage" id="id505">MagickDescribeImage</a></p></li> -<li><p><a class="reference internal" href="#magickdespeckleimage" id="id506">MagickDespeckleImage</a></p></li> -<li><p><a class="reference internal" href="#magickdisplayimage" id="id507">MagickDisplayImage</a></p></li> -<li><p><a class="reference internal" href="#magickdisplayimages" id="id508">MagickDisplayImages</a></p></li> -<li><p><a class="reference internal" href="#magickdrawimage" id="id509">MagickDrawImage</a></p></li> -<li><p><a class="reference internal" href="#magickedgeimage" id="id510">MagickEdgeImage</a></p></li> -<li><p><a class="reference internal" href="#magickembossimage" id="id511">MagickEmbossImage</a></p></li> -<li><p><a class="reference internal" href="#magickenhanceimage" id="id512">MagickEnhanceImage</a></p></li> -<li><p><a class="reference internal" href="#magickequalizeimage" id="id513">MagickEqualizeImage</a></p></li> -<li><p><a class="reference internal" href="#magickextentimage" id="id514">MagickExtentImage</a></p></li> -<li><p><a class="reference internal" href="#magickflattenimages" id="id515">MagickFlattenImages</a></p></li> -<li><p><a class="reference internal" href="#magickflipimage" id="id516">MagickFlipImage</a></p></li> -<li><p><a class="reference internal" href="#magickflopimage" id="id517">MagickFlopImage</a></p></li> -<li><p><a class="reference internal" href="#magickframeimage" id="id518">MagickFrameImage</a></p></li> -<li><p><a class="reference internal" href="#magickfximage" id="id519">MagickFxImage</a></p></li> -<li><p><a class="reference internal" href="#magickfximagechannel" id="id520">MagickFxImageChannel</a></p></li> -<li><p><a class="reference internal" href="#magickgammaimage" id="id521">MagickGammaImage</a></p></li> -<li><p><a class="reference internal" href="#magickgammaimagechannel" id="id522">MagickGammaImageChannel</a></p></li> -<li><p><a class="reference internal" href="#magickgetconfigureinfo" id="id523">MagickGetConfigureInfo</a></p></li> -<li><p><a class="reference internal" href="#magickgetcopyright" id="id524">MagickGetCopyright</a></p></li> -<li><p><a class="reference internal" href="#magickgetexception" id="id525">MagickGetException</a></p></li> -<li><p><a class="reference internal" href="#magickgetfilename" id="id526">MagickGetFilename</a></p></li> -<li><p><a class="reference internal" href="#magickgethomeurl" id="id527">MagickGetHomeURL</a></p></li> -<li><p><a class="reference internal" href="#magickgetimage" id="id528">MagickGetImage</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageattribute" id="id529">MagickGetImageAttribute</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagebackgroundcolor" id="id530">MagickGetImageBackgroundColor</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageblueprimary" id="id531">MagickGetImageBluePrimary</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagebordercolor" id="id532">MagickGetImageBorderColor</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageboundingbox" id="id533">MagickGetImageBoundingBox</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagechanneldepth" id="id534">MagickGetImageChannelDepth</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagechannelextrema" id="id535">MagickGetImageChannelExtrema</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagechannelmean" id="id536">MagickGetImageChannelMean</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagecolormapcolor" id="id537">MagickGetImageColormapColor</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagecolors" id="id538">MagickGetImageColors</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagecolorspace" id="id539">MagickGetImageColorspace</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagecompose" id="id540">MagickGetImageCompose</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagecompression" id="id541">MagickGetImageCompression</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagedelay" id="id542">MagickGetImageDelay</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagedepth" id="id543">MagickGetImageDepth</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageextrema" id="id544">MagickGetImageExtrema</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagedispose" id="id545">MagickGetImageDispose</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagefilename" id="id546">MagickGetImageFilename</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageformat" id="id547">MagickGetImageFormat</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagefuzz" id="id548">MagickGetImageFuzz</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagegamma" id="id549">MagickGetImageGamma</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagegravity" id="id550">MagickGetImageGravity</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagegreenprimary" id="id551">MagickGetImageGreenPrimary</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageheight" id="id552">MagickGetImageHeight</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagehistogram" id="id553">MagickGetImageHistogram</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageindex" id="id554">MagickGetImageIndex</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageinterlacescheme" id="id555">MagickGetImageInterlaceScheme</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageiterations" id="id556">MagickGetImageIterations</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagemattecolor" id="id557">MagickGetImageMatteColor</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageorientation" id="id558">MagickGetImageOrientation</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagepage" id="id559">MagickGetImagePage</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagepixels" id="id560">MagickGetImagePixels</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageprofile" id="id561">MagickGetImageProfile</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageredprimary" id="id562">MagickGetImageRedPrimary</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagerenderingintent" id="id563">MagickGetImageRenderingIntent</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageresolution" id="id564">MagickGetImageResolution</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagescene" id="id565">MagickGetImageScene</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagesignature" id="id566">MagickGetImageSignature</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagesize" id="id567">MagickGetImageSize</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagetype" id="id568">MagickGetImageType</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagesavedtype" id="id569">MagickGetImageSavedType</a></p></li> -<li><p><a class="reference internal" href="#magickgetimageunits" id="id570">MagickGetImageUnits</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagevirtualpixelmethod" id="id571">MagickGetImageVirtualPixelMethod</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagewhitepoint" id="id572">MagickGetImageWhitePoint</a></p></li> -<li><p><a class="reference internal" href="#magickgetimagewidth" id="id573">MagickGetImageWidth</a></p></li> -<li><p><a class="reference internal" href="#magickgetnumberimages" id="id574">MagickGetNumberImages</a></p></li> -<li><p><a class="reference internal" href="#magickgetpackagename" id="id575">MagickGetPackageName</a></p></li> -<li><p><a class="reference internal" href="#magickgetquantumdepth" id="id576">MagickGetQuantumDepth</a></p></li> -<li><p><a class="reference internal" href="#magickgetreleasedate" id="id577">MagickGetReleaseDate</a></p></li> -<li><p><a class="reference internal" href="#magickgetresourcelimit" id="id578">MagickGetResourceLimit</a></p></li> -<li><p><a class="reference internal" href="#magickgetsamplingfactors" id="id579">MagickGetSamplingFactors</a></p></li> -<li><p><a class="reference internal" href="#magickgetsize" id="id580">MagickGetSize</a></p></li> -<li><p><a class="reference internal" href="#magickgetversion" id="id581">MagickGetVersion</a></p></li> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-11 18:38:23
|
changeset 608941732ea8 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=608941732ea8 summary: TclMagick/README: Autoconf/Automake seems to do well enough so remove mention of TEA Makefile. diffstat: TclMagick/README | 6 +----- 1 files changed, 1 insertions(+), 5 deletions(-) diffs (13 lines): diff -r 424c4bc96437 -r 608941732ea8 TclMagick/README --- a/TclMagick/README Tue Feb 11 11:03:40 2025 -0600 +++ b/TclMagick/README Tue Feb 11 12:37:40 2025 -0600 @@ -12,8 +12,4 @@ <mas...@un...>, and Bob Friesenhahn <bfr...@si...>. -The Unix/Linux build is currently done using Automake+libtool. The -quality of the integration as pertains to Tcl would be improved if the -TclMagick build is changed to a pure Tcl Extension Architecture (TEA) -build and test framework similar to SampleExtension -(https://wiki.tcl-lang.org/page/SampleExtension). +The Unix/Linux build is currently done using Automake+libtool. |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-11 17:04:25
|
changeset 9e6fb2be8d98 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9e6fb2be8d98 summary: Visual Studio prior to 2015 does not support C'99 so emulate snprintf() changeset 424c4bc96437 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=424c4bc96437 summary: magick/nt_base.h: Update notes regarding _MSC_VER values and Visual C++ versions. diffstat: ChangeLog | 9 +++++++++ VisualMagick/installer/inc/version.isx | 4 ++-- magick/nt_base.h | 22 ++++++++++++---------- magick/version.h | 4 ++-- tests/constitute.c | 5 ++++- tests/rwblob.c | 5 ++++- tests/rwfile.c | 3 +++ wand/wandtest.c | 5 ++++- www/ChangeLog.html | 10 ++++++++++ www/index.html | 2 +- www/index.rst | 2 +- 11 files changed, 52 insertions(+), 19 deletions(-) diffs (192 lines): diff -r b0142af1dd01 -r 424c4bc96437 ChangeLog --- a/ChangeLog Sat Feb 08 14:31:31 2025 -0600 +++ b/ChangeLog Tue Feb 11 11:03:40 2025 -0600 @@ -1,3 +1,12 @@ +2025-02-11 Bob Friesenhahn <bfr...@si...> + + * magick/nt_base.h: Update notes regarding `_MSC_VER` values and + Visual C++ versions. + + * www/index.rst: Promote the Mercurial repository at + https://foss.heptapod.net/graphicsmagick/graphicsmagick since it + seems to work better. + 2025-02-08 Bob Friesenhahn <bfr...@si...> * magick/magic.c: Make the magic-based format descriptions more diff -r b0142af1dd01 -r 424c4bc96437 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sat Feb 08 14:31:31 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Tue Feb 11 11:03:40 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250208" -#define public MagickPackageReleaseDate "snapshot-20250208" +#define public MagickPackageVersionAddendum ".020250211" +#define public MagickPackageReleaseDate "snapshot-20250211" diff -r b0142af1dd01 -r 424c4bc96437 magick/nt_base.h --- a/magick/nt_base.h Sat Feb 08 14:31:31 2025 -0600 +++ b/magick/nt_base.h Tue Feb 11 11:03:40 2025 -0600 @@ -184,19 +184,21 @@ 1100 MSVC 5.0 1200 MSVC 6.0 1300 MSVC 7.0 Visual C++ .NET 2002 - 1310 Visual C++ .NET 2003 - 1400 Visual C++ 2005 - 1500 Visual C++ 2008 - 1600 Visual C++ 2010 - 1700 Visual C++ 2012 - 1800 Visual C++ 2013 - 1900 Visual C++ 2015 - 1910 Visual C++ 2017 - 1920 Visual C++ 2019 - 1930 Visual C++ 2022 + 1310 Visual C++ .NET 2003 (7.1) + 1400 Visual C++ 2005 (8.0) + 1500 Visual C++ 2008 (8.0, 9.0) + 1600 Visual C++ 2010 (10X) + 1700 Visual C++ 2012 (11.X) + 1800 Visual C++ 2013 (12.X) + 1900 Visual C++ 2015 (14.X) + 1910 Visual C++ 2017 (15.X, 15.X.X) + 1920 Visual C++ 2019 (16.X.X) (_MSC_VER 1920 - 1929) + 1930 Visual C++ 2022 (17.X.X) (_MSC_VER 1930 - 1942+) Should look at __CLR_VER ("Defines the version of the common language runtime used when the application was compiled.") as well. + + Also see _MSC_FULL_VER introduced by Visual Studio 6.0 SP5. */ #if defined(_VISUALC_) && (_MSC_VER >= 1310) # define HAVE_GLOBALMEMORYSTATUSEX 1 diff -r b0142af1dd01 -r 424c4bc96437 magick/version.h --- a/magick/version.h Sat Feb 08 14:31:31 2025 -0600 +++ b/magick/version.h Tue Feb 11 11:03:40 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250208" -#define MagickReleaseDate "snapshot-20250208" +#define MagickChangeDate "20250211" +#define MagickReleaseDate "snapshot-20250211" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r b0142af1dd01 -r 424c4bc96437 tests/constitute.c --- a/tests/constitute.c Sat Feb 08 14:31:31 2025 -0600 +++ b/tests/constitute.c Tue Feb 11 11:03:40 2025 -0600 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2024 GraphicsMagick Group + * Copyright (C) 2003-2025 GraphicsMagick Group * * Test DispatchImage/ConstituteImage operations via * write/read/write/read sequence to detect any data corruption @@ -12,6 +12,9 @@ * */ +#if defined(_VISUALC_) && (_MSC_VER < 1900) +#include <magick/studio.h> +#endif #include <magick/api.h> #include <magick/enum_strings.h> diff -r b0142af1dd01 -r 424c4bc96437 tests/rwblob.c --- a/tests/rwblob.c Sat Feb 08 14:31:31 2025 -0600 +++ b/tests/rwblob.c Tue Feb 11 11:03:40 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 * @@ -18,6 +18,9 @@ * */ +#if defined(_VISUALC_) && (_MSC_VER < 1900) +#include <magick/studio.h> +#endif #include <magick/api.h> #include <magick/enum_strings.h> diff -r b0142af1dd01 -r 424c4bc96437 tests/rwfile.c --- a/tests/rwfile.c Sat Feb 08 14:31:31 2025 -0600 +++ b/tests/rwfile.c Tue Feb 11 11:03:40 2025 -0600 @@ -18,6 +18,9 @@ * enough) in order for the test to pass. * */ +#if defined(_VISUALC_) && (_MSC_VER < 1900) +#include <magick/studio.h> +#endif #include <magick/api.h> #include <magick/enum_strings.h> diff -r b0142af1dd01 -r 424c4bc96437 wand/wandtest.c --- a/wand/wandtest.c Sat Feb 08 14:31:31 2025 -0600 +++ b/wand/wandtest.c Tue Feb 11 11:03:40 2025 -0600 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2024 GraphicsMagick Group */ +/* Copyright (C) 2003-2025 GraphicsMagick Group */ /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -71,6 +71,9 @@ /* Include declarations. */ +#if defined(_VISUALC_) && (_MSC_VER < 1900) +#include <magick/studio.h> +#endif #include <stdlib.h> #include <stdio.h> #include <string.h> diff -r b0142af1dd01 -r 424c4bc96437 www/ChangeLog.html --- a/www/ChangeLog.html Sat Feb 08 14:31:31 2025 -0600 +++ b/www/ChangeLog.html Tue Feb 11 11:03:40 2025 -0600 @@ -38,6 +38,16 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-02-11 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>magick/nt_base.h: Update notes regarding <cite>_MSC_VER</cite> values and +Visual C++ versions.</p></li> +<li><p>www/index.rst: Promote the Mercurial repository at +<a class="reference external" href="https://foss.heptapod.net/graphicsmagick/graphicsmagick">https://foss.heptapod.net/graphicsmagick/graphicsmagick</a> since it +seems to work better.</p></li> +</ul> +</blockquote> <p>2025-02-08 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"> diff -r b0142af1dd01 -r 424c4bc96437 www/index.html --- a/www/index.html Sat Feb 08 14:31:31 2025 -0600 +++ b/www/index.html Tue Feb 11 11:03:40 2025 -0600 @@ -55,7 +55,7 @@ <td><p>(Updated frequently) <a class="reference external" href="https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick-snapshots/">download development snapshots</a></p></td> </tr> <tr><td><p>Mercurial Repository</p></td> -<td><p>(Updated frequently) <a class="reference external" href="https://sourceforge.net/p/graphicsmagick/code/">visit Mercurial repository</a></p></td> +<td><p>(Updated frequently) <a class="reference external" href="https://foss.heptapod.net/graphicsmagick/graphicsmagick">visit Mercurial repository</a></p></td> </tr> </tbody> </table> diff -r b0142af1dd01 -r 424c4bc96437 www/index.rst --- a/www/index.rst Sat Feb 08 14:31:31 2025 -0600 +++ b/www/index.rst Tue Feb 11 11:03:40 2025 -0600 @@ -23,7 +23,7 @@ .. _`download GraphicsMagick release` : https://sourceforge.net/projects/graphicsmagick/files/ .. _`download development snapshots` : https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick-snapshots/ -.. _`visit Mercurial repository`: https://sourceforge.net/p/graphicsmagick/code/ +.. _`visit Mercurial repository`: https://foss.heptapod.net/graphicsmagick/graphicsmagick .. _programming : programming.html |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-08 20:32:05
|
changeset b0142af1dd01 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b0142af1dd01 summary: magick/magic.c: Make the magic-based format descriptions more detailed and helpful. diffstat: ChangeLog | 5 +++ VisualMagick/installer/inc/version.isx | 4 +- magick/magic.c | 44 ++++++++++++++++++++------------- magick/version.h | 4 +- www/ChangeLog.html | 7 +++++ 5 files changed, 42 insertions(+), 22 deletions(-) diffs (138 lines): diff -r 298914accccd -r b0142af1dd01 ChangeLog --- a/ChangeLog Fri Feb 07 17:27:03 2025 -0600 +++ b/ChangeLog Sat Feb 08 14:31:31 2025 -0600 @@ -1,3 +1,8 @@ +2025-02-08 Bob Friesenhahn <bfr...@si...> + + * magick/magic.c: Make the magic-based format descriptions more + detailed and helpful. + 2025-02-07 Bob Friesenhahn <bfr...@si...> * magick/magic.c (ListMagicInfo): Include a format description in diff -r 298914accccd -r b0142af1dd01 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Fri Feb 07 17:27:03 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Sat Feb 08 14:31:31 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250207" -#define public MagickPackageReleaseDate "snapshot-20250207" +#define public MagickPackageVersionAddendum ".020250208" +#define public MagickPackageReleaseDate "snapshot-20250208" diff -r 298914accccd -r b0142af1dd01 magick/magic.c --- a/magick/magic.c Fri Feb 07 17:27:03 2025 -0600 +++ b/magick/magic.c Sat Feb 08 14:31:31 2025 -0600 @@ -71,24 +71,24 @@ MAGIC("8BIMWTEXT", "Photoshop resource wide text format", 0, "8\000B\000I\000M\000#"), MAGIC("8BIMTEXT", "Photoshop resource text format", 0, "8BIM#"), MAGIC("8BIM", "Photoshop resource format", 0, "8BIM"), - MAGIC("BMP", "BMP BA", 0, "BA"), - MAGIC("BMP", "BMP BM", 0, "BM"), - MAGIC("BMP", "BMP CI", 0, "CI"), - MAGIC("BMP", "BMP CP", 0, "CP"), - MAGIC("BMP", "BMP IC", 0, "IC"), - MAGIC("BMP", "BMP PI", 0, "PI"), + MAGIC("BMP", "BMP (OS/2 struct bitmap array)", 0, "BA"), + MAGIC("BMP", "BMP (Windows 3.1x, 95, NT, ...)", 0, "BM"), + MAGIC("BMP", "BMP (OS/2 struct color icon)", 0, "CI"), + MAGIC("BMP", "BMP (OS/2 const color pointer)", 0, "CP"), + MAGIC("BMP", "BMP (OS/2 struct icon)", 0, "IC"), + MAGIC("BMP", "BMP (OS/2 pointer)", 0, "PI"), MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 21, "version: MIL-STD-1840"), MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 0, "srcdocid:"), MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 9, "srcdocid:"), MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 8, "rorient:"), MAGIC("CGM", "Computer Graphics Metaformat", 0, "BEGMF"), - MAGIC("CIN", "Cineon Image File", 0, "\200\052\137\327"), - MAGIC("DCM", "DICOM", 128, "DICM"), + MAGIC("CIN", "Kodak Cineon Image File", 0, "\200\052\137\327"), + MAGIC("DCM", "DICOM medical image", 128, "DICM"), MAGIC("DCX", "ZSoft IBM PC multi-page Paintbrush", 0, "\261\150\336\72"), MAGIC("DIB", "Microsoft DIB", 0, "\050\000"), MAGIC("DOT", "Graphviz DOT", 0, "digraph"), - MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "SDPX"), - MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "XPDS"), + MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0) (BE)", 0, "SDPX"), + MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0) (LE)", 0, "XPDS"), MAGIC("EMF", "Microsoft EMF", 40, "\040\105\115\106\000\000\001\000"), MAGIC("EPT", "Adobe Encapsulated PostScript (with preview)", 0, "\305\320\323\306"), MAGIC("FAX", "Group 3 FAX", 0, "DFAX"), @@ -106,7 +106,7 @@ MAGIC("HEIF", "HEIF - Scalable sequence", 4, "ftyphevs"), MAGIC("HEIC", "HEIF - Nokia alpha image", 4, "ftypmif1"), MAGIC("HEIC", "HEIF - Nokia animation image", 4, "ftypmsf1"), - MAGIC("HDF", "Heirarchical Data Format", 1, "HDF"), + /* MAGIC("HDF", "Heirarchical Data Format", 1, "HDF"), */ MAGIC("HPGL", "HP Graphics Language", 0, "IN;"), MAGIC("HTML", "Hypertext Markup Language", 1, "HTML"), MAGIC("HTML", "Hypertext Markup Language", 1, "html"), @@ -146,9 +146,17 @@ MAGIC("PPM", "Portable pixmap file format (binary)", 0, "P6"), MAGIC("P7", "XV Thumbnail (P7 332)", 0, "P7 332"), /* XV Thumbnail */ MAGIC("PAM", "XV Thumbnail (P7)", 0, "P7"), /* Should be listed after "P7 332" */ - MAGIC("PS", "Adobe Postscript", 0, "%!"), - MAGIC("PS", "Adobe Postscript", 0, "\004%!"), - MAGIC("PS", "Adobe Postscript", 0, "\305\320\323\306"), + MAGIC("PS", "Adobe Encapsulated Postscript 3.0", 0, "%!PS-Adobe-3.0 EPSF-3.0"), + MAGIC("PS", "Adobe Encapsulated Postscript 2.1", 0, "%!PS-Adobe-3.0 EPSF-2.1"), + MAGIC("PS", "Adobe Encapsulated Postscript 2.0", 0, "%!PS-Adobe-2.0 EPSF-2.0"), + MAGIC("PS", "Adobe Encapsulated Postscript 1.2", 0, "%!PS-Adobe-2.0 EPSF-1.2"), + MAGIC("PS", "Adobe Postscript 3.0", 0, "%!PS-Adobe-3.0"), + MAGIC("PS", "Adobe Postscript 2.0", 0, "%!PS-Adobe-2.0"), + MAGIC("PS", "Adobe Postscript 2.1", 0, "%!PS-Adobe-2.1"), + MAGIC("PS", "Adobe Postscript 1.0", 0, "%!PS-Adobe-1.0"), + MAGIC("PS", "Adobe Postscript", 0, "%!"), /* Generic */ + MAGIC("PS", "Adobe Postscript", 0, "\004%!"), /* EOT character. Maybe used when printing. */ + MAGIC("PS", "Adobe Encapsulated PostScript Interchange (EPT)", 0, "\305\320\323\306"), /* aka EPT */ MAGIC("PSD", "Photoshop PSD", 0, "8BPS"), MAGIC("PWP", "Seattle Film Works", 0, "SFW95"), MAGIC("RAD", "Radiance", 0, "#?RADIANCE"), @@ -160,11 +168,11 @@ MAGIC("SUN", "SUN Rasterfile", 0, "\131\246\152\225"), MAGIC("SVG", "Scalable Vector Graphics", 1, "?XML"), MAGIC("SVG", "Scalable Vector Graphics", 1, "?xml"), - MAGIC("TIFF", "Tagged Image File Format", 0, "\115\115\000\052"), - MAGIC("TIFF", "Tagged Image File Format", 0, "\111\111\052\000"), + MAGIC("TIFF", "Tagged Image File Format (BE Classic)", 0, "\115\115\000\052"), + MAGIC("TIFF", "Tagged Image File Format (LE Classic)", 0, "\111\111\052\000"), MAGIC("TOPOL", "TopoL X Image", 0, " "), - MAGIC("BIGTIFF", "Tagged Image File Format (64 bit)", 0, "\115\115\000\053\000\010\000\000"), - MAGIC("BIGTIFF", "Tagged Image File Format (64 bit)", 0, "\111\111\053\000\010\000\000\000"), + MAGIC("BIGTIFF", "Tagged Image File Format (BE Big)", 0, "\115\115\000\053\000\010\000\000"), + MAGIC("BIGTIFF", "Tagged Image File Format (LE Big)", 0, "\111\111\053\000\010\000\000\000"), MAGIC("VICAR", "VICAR rasterfile format (LBLSIZE)", 0, "LBLSIZE"), MAGIC("VICAR", "VICAR rasterfile format (NJPL1I)", 0, "NJPL1I"), MAGIC("VIFF","Khoros Visualization image", 0, "\253\001"), diff -r 298914accccd -r b0142af1dd01 magick/version.h --- a/magick/version.h Fri Feb 07 17:27:03 2025 -0600 +++ b/magick/version.h Sat Feb 08 14:31:31 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250207" -#define MagickReleaseDate "snapshot-20250207" +#define MagickChangeDate "20250208" +#define MagickReleaseDate "snapshot-20250208" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 298914accccd -r b0142af1dd01 www/ChangeLog.html --- a/www/ChangeLog.html Fri Feb 07 17:27:03 2025 -0600 +++ b/www/ChangeLog.html Sat Feb 08 14:31:31 2025 -0600 @@ -38,6 +38,13 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-02-08 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>magick/magic.c: Make the magic-based format descriptions more +detailed and helpful.</p></li> +</ul> +</blockquote> <p>2025-02-07 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-07 23:27:56
|
changeset 298914accccd in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=298914accccd summary: magick/magic.c: Include a format description in the output of 'gm convert -list magic'. diffstat: ChangeLog | 5 + VisualMagick/installer/inc/version.isx | 4 +- magick/magic.c | 96 ++++++++++++++++++++++++++------- magick/version.h | 4 +- www/ChangeLog.html | 7 ++ 5 files changed, 90 insertions(+), 26 deletions(-) diffs (226 lines): diff -r d1810a5bf3a3 -r 298914accccd ChangeLog --- a/ChangeLog Mon Feb 03 15:19:48 2025 -0600 +++ b/ChangeLog Fri Feb 07 17:27:03 2025 -0600 @@ -1,3 +1,8 @@ +2025-02-07 Bob Friesenhahn <bfr...@si...> + + * magick/magic.c (ListMagicInfo): Include a format description in + the output of 'gm convert -list magic'. + 2025-02-03 Bob Friesenhahn <bfr...@si...> * magick/magic.c: Add a Magic description field in order to help diff -r d1810a5bf3a3 -r 298914accccd VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Mon Feb 03 15:19:48 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Fri Feb 07 17:27:03 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250203" -#define public MagickPackageReleaseDate "snapshot-20250203" +#define public MagickPackageVersionAddendum ".020250207" +#define public MagickPackageReleaseDate "snapshot-20250207" diff -r d1810a5bf3a3 -r 298914accccd magick/magic.c --- a/magick/magic.c Mon Feb 03 15:19:48 2025 -0600 +++ b/magick/magic.c Fri Feb 07 17:27:03 2025 -0600 @@ -56,12 +56,14 @@ * description; unsigned short + name_size, + description_size, length, offset; } StaticMagic[] = { -#define MAGIC(name,description,offset,magic) {name,(const unsigned char * const)magic,description, sizeof(magic)-1,offset} +#define MAGIC(name,description,offset,magic) {name,(const unsigned char * const)magic,description,sizeof(name)-1,sizeof(description)-1,sizeof(magic)-1,offset} MAGIC("WEBP", "WebP Image Format", 8, "WEBP"), MAGIC("AVIF", "HEIF AV1 image", 4, "ftypavif"), MAGIC("AVIF", "HEIF AV1 image sequence", 4, "ftypavis"), @@ -75,10 +77,10 @@ MAGIC("BMP", "BMP CP", 0, "CP"), MAGIC("BMP", "BMP IC", 0, "IC"), MAGIC("BMP", "BMP PI", 0, "PI"), - MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 21, "version: MIL-STD-1840"), - MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 0, "srcdocid:"), - MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 9, "srcdocid:"), - MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 8, "rorient:"), + MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 21, "version: MIL-STD-1840"), + MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 0, "srcdocid:"), + MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 9, "srcdocid:"), + MAGIC("CALS", "CALS (MIL-STD-1840) Type 1 image", 8, "rorient:"), MAGIC("CGM", "Computer Graphics Metaformat", 0, "BEGMF"), MAGIC("CIN", "Cineon Image File", 0, "\200\052\137\327"), MAGIC("DCM", "DICOM", 128, "DICM"), @@ -88,7 +90,7 @@ MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "SDPX"), MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "XPDS"), MAGIC("EMF", "Microsoft EMF", 40, "\040\105\115\106\000\000\001\000"), - MAGIC("EPT", "Adobe Encapsulated PostScript with MS-DOS TIFF preview", 0, "\305\320\323\306"), + MAGIC("EPT", "Adobe Encapsulated PostScript (with preview)", 0, "\305\320\323\306"), MAGIC("FAX", "Group 3 FAX", 0, "DFAX"), MAGIC("FIG", "Xfig", 0, "#FIG"), MAGIC("FITS", "Flexible Image Transport System", 0, "IT0"), @@ -113,7 +115,7 @@ MAGIC("IPTCTEXT", "IPTC Newsphoto text format", 0, "2#0=\042�\042"), MAGIC("IPTC", "IPTC Newsphoto", 0, "\034\002"), MAGIC("JNG", "JPEG Network Graphics", 0, "\213JNG\r\n\032\n"), - MAGIC("JPEG", "Joint Photographic Experts Group JFIF format", 0, "\377\330\377"), + MAGIC("JPEG", "Joint Photographic Experts Group JFIF", 0, "\377\330\377"), MAGIC("JPC", "JPEG-2000 Code Stream Syntax", 0, "\377\117"), MAGIC("JP2", "JPEG-2000 JP2 File Format", 4, "\152\120\040\040\015"), MAGIC("JXL", "JPEG XL Image Format", 0, "\xff\x0a"), @@ -122,7 +124,7 @@ MAGIC("MIFF", "Magick Image File Format", 0, "Id=ImageMagick"), MAGIC("MIFF", "Magick Image File Format", 0, "id=ImageMagick"), MAGIC("MNG", "Multiple-image Network Graphics", 0, "\212MNG\r\n\032\n"), - MAGIC("MPC", "Magick Persistent Cache image format", 0, "id=MagickCache"), + MAGIC("MPC", "Magick Persistent Cache image", 0, "id=MagickCache"), MAGIC("MPEG", "MPEG Video Stream", 0, "\000\000\001\263"), MAGIC("PCD", "Adobe Photo CD", 2048, "PCD_"), MAGIC("PCL", "HP Page Control Language", 0, "\033E\033"), @@ -343,25 +345,75 @@ MagickExport MagickPassFail ListMagicInfo(FILE *file,ExceptionInfo *exception) { +#define NAME_HEADER "Name" +#define DESCRIPTION_HEADER "Description" +#define OFFSET_HEADER "Offset" +#define TARGET_HEADER "Target" +#define OFFSET_TARGET_HEADER "Offset Target" + + const size_t + description_size=sizeof(DESCRIPTION_HEADER)-1, + name_size=sizeof(NAME_HEADER)-1, + offset_size=sizeof(OFFSET_HEADER)-1, + target_size=sizeof(TARGET_HEADER)-1; + + size_t + description_size_max=description_size, + name_size_max=name_size, + offset_size_max=offset_size, + target_size_max=Max(target_size,16); + register unsigned int i, j; + for (i=0; i < ArraySize(StaticMagic); i++) + { + if (description_size_max < StaticMagic[i].description_size) + description_size_max = StaticMagic[i].description_size; + if (name_size_max < StaticMagic[i].name_size) + name_size_max = StaticMagic[i].name_size; + /* The following does not account for control code expansion */ + if (target_size_max < StaticMagic[i].length) + target_size_max = StaticMagic[i].length; + } + ARG_NOT_USED(exception); if (file == (const FILE *) NULL) file=stdout; - (void) fprintf(file,"Name Offset Target\n"); - (void) fprintf(file,"-------------------------------------------------" - "------------------------------\n"); + (void) fprintf(file,"%s",NAME_HEADER); + for (j=name_size; j <= name_size_max; j++) + (void) fprintf(file," "); + + (void) fprintf(file,"%s",DESCRIPTION_HEADER); + for (j=description_size; j <= description_size_max; j++) + (void) fprintf(file," "); + + (void) fprintf(file,"%s",OFFSET_HEADER); + for (j=offset_size; j <= offset_size_max; j++) + (void) fprintf(file," "); + + (void) fprintf(file,"%s",TARGET_HEADER); + for (j=target_size; j <= target_size_max; j++) + (void) fprintf(file," "); + (void) fprintf(file,"\n"); + + for (j=0; j <= (name_size_max+1+description_size_max+1+offset_size_max+1+target_size_max+1); j++) + (void) fprintf(file,"-"); + (void) fprintf(file,"\n"); + for (i=0; i < ArraySize(StaticMagic); i++) { register const unsigned char *c; - (void) fprintf(file,"%.1024s",StaticMagic[i].name); - for (j= (unsigned int) strlen(StaticMagic[i].name); j <= 9; j++) + (void) fprintf(file,"%.*s",(int) name_size_max,StaticMagic[i].name); + for (j= (unsigned int) strlen(StaticMagic[i].name); j <= name_size_max; j++) + (void) fprintf(file," "); + (void) fprintf(file,"%.*s",(int) description_size_max,StaticMagic[i].description); + for (j= (unsigned int) strlen(StaticMagic[i].description); j <= description_size_max; j++) (void) fprintf(file," "); (void) fprintf(file,"%6u ",StaticMagic[i].offset); @@ -369,20 +421,20 @@ c=StaticMagic[i].magic; for (j=0; j < StaticMagic[i].length; j++) { -/* else if ('\b' == c[j]) */ -/* (void) fprintf(file,"\\b"); */ -/* else if ('\f' == c[j]) */ -/* (void) fprintf(file,"\\f"); */ + /* else if ('\b' == c[j]) */ + /* (void) fprintf(file,"\\b"); */ + /* else if ('\f' == c[j]) */ + /* (void) fprintf(file,"\\f"); */ if ('\n' == c[j]) (void) fprintf(file,"\\n"); else if ('\r' == c[j]) (void) fprintf(file,"\\r"); else if ('\t' == c[j]) - (void) fprintf(file,"\\t"); -/* else if ('\v' == c[j]) */ -/* (void) fprintf(file,"\\v"); */ -/* else if ('\a' == c[j]) */ -/* (void) fprintf(file,"\\a"); */ + (void) fprintf(file,"\\t"); + /* else if ('\v' == c[j]) */ + /* (void) fprintf(file,"\\v"); */ + /* else if ('\a' == c[j]) */ + /* (void) fprintf(file,"\\a"); */ else if ('\\' == c[j]) (void) fprintf(file,"\\"); else if ('\?' == c[j]) diff -r d1810a5bf3a3 -r 298914accccd magick/version.h --- a/magick/version.h Mon Feb 03 15:19:48 2025 -0600 +++ b/magick/version.h Fri Feb 07 17:27:03 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250203" -#define MagickReleaseDate "snapshot-20250203" +#define MagickChangeDate "20250207" +#define MagickReleaseDate "snapshot-20250207" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r d1810a5bf3a3 -r 298914accccd www/ChangeLog.html --- a/www/ChangeLog.html Mon Feb 03 15:19:48 2025 -0600 +++ b/www/ChangeLog.html Fri Feb 07 17:27:03 2025 -0600 @@ -38,6 +38,13 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-02-07 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>magick/magic.c (ListMagicInfo): Include a format description in +the output of 'gm convert -list magic'.</p></li> +</ul> +</blockquote> <p>2025-02-03 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-03 21:22:43
|
changeset d1810a5bf3a3 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=d1810a5bf3a3 summary: magick/magic.c: Add a Magic description field. Trace magic. diffstat: ChangeLog | 7 + VisualMagick/installer/inc/version.isx | 4 +- magick/magic.c | 237 +++++++++++++++++--------------- magick/version.h | 4 +- www/ChangeLog.html | 9 + 5 files changed, 143 insertions(+), 118 deletions(-) diffs (318 lines): diff -r 339ea5233db0 -r d1810a5bf3a3 ChangeLog --- a/ChangeLog Wed Jan 29 15:19:59 2025 -0600 +++ b/ChangeLog Mon Feb 03 15:19:48 2025 -0600 @@ -1,3 +1,10 @@ +2025-02-03 Bob Friesenhahn <bfr...@si...> + + * magick/magic.c: Add a Magic description field in order to help + identify and document format variants based on header magic. + (GetMagickFileFormat): Trace the format description at Coder + level. + 2025-01-29 Bob Friesenhahn <bfr...@si...> * coders/png.c (WriteOnePNGImage): Ignore exessively short ICM diff -r 339ea5233db0 -r d1810a5bf3a3 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Wed Jan 29 15:19:59 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Mon Feb 03 15:19:48 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250129" -#define public MagickPackageReleaseDate "snapshot-20250129" +#define public MagickPackageVersionAddendum ".020250203" +#define public MagickPackageReleaseDate "snapshot-20250203" diff -r 339ea5233db0 -r d1810a5bf3a3 magick/magic.c --- a/magick/magic.c Wed Jan 29 15:19:59 2025 -0600 +++ b/magick/magic.c Mon Feb 03 15:19:48 2025 -0600 @@ -52,125 +52,128 @@ const unsigned char * const magic; + const char + * description; + unsigned short length, offset; } StaticMagic[] = { -#define MAGIC(name,offset,magic) {name,(const unsigned char * const)magic,sizeof(magic)-1,offset} - MAGIC("WEBP", 8, "WEBP"), - MAGIC("AVIF", 4, "ftypavif"), /* HEIF: AV1 image */ - MAGIC("AVIF", 4, "ftypavis"), /* HEIF: AV1 image sequence */ - /* MAGIC("AVI", 0, "RIFF"), */ - MAGIC("8BIMWTEXT", 0, "8\000B\000I\000M\000#"), - MAGIC("8BIMTEXT", 0, "8BIM#"), - MAGIC("8BIM", 0, "8BIM"), - MAGIC("BMP", 0, "BA"), - MAGIC("BMP", 0, "BM"), - MAGIC("BMP", 0, "CI"), - MAGIC("BMP", 0, "CP"), - MAGIC("BMP", 0, "IC"), - MAGIC("BMP", 0, "PI"), - MAGIC("CALS", 21, "version: MIL-STD-1840"), - MAGIC("CALS", 0, "srcdocid:"), - MAGIC("CALS", 9, "srcdocid:"), - MAGIC("CALS", 8, "rorient:"), - MAGIC("CGM", 0, "BEGMF"), - MAGIC("CIN", 0, "\200\052\137\327"), - MAGIC("DCM", 128, "DICM"), - MAGIC("DCX", 0, "\261\150\336\72"), - MAGIC("DIB", 0, "\050\000"), - MAGIC("DOT", 0, "digraph"), - MAGIC("DPX", 0, "SDPX"), - MAGIC("DPX", 0, "XPDS"), - MAGIC("EMF", 40, "\040\105\115\106\000\000\001\000"), - MAGIC("EPT", 0, "\305\320\323\306"), - MAGIC("FAX", 0, "DFAX"), - MAGIC("FIG", 0, "#FIG"), - MAGIC("FITS", 0, "IT0"), - MAGIC("FITS", 0, "SIMPLE"), - MAGIC("FPX", 0, "\320\317\021\340"), - MAGIC("GIF", 0, "GIF8"), - MAGIC("HEIC", 4, "ftypheic"), /* HEIF: A regular heif image */ - MAGIC("HEIC", 4, "ftypheix"), /* HEIF: Extended range (>8 bit) image */ - MAGIC("HEIF", 4, "ftyphevc"), /* HEIF: Image sequence */ - MAGIC("HEIF", 4, "ftypheim"), /* HEIF: Image sequence */ - MAGIC("HEIF", 4, "ftypheis"), /* HEIF: Scalable image */ - MAGIC("HEIF", 4, "ftyphevm"), /* HEIF: Multiview sequence */ - MAGIC("HEIF", 4, "ftyphevs"), /* HEIF: Scalable sequence*/ - MAGIC("HEIC", 4, "ftypmif1"), /* HEIF: Nokia alpha_ image */ - MAGIC("HEIC", 4, "ftypmsf1"), /* HEIF: Nokia animation image */ - MAGIC("HDF", 1, "HDF"), - MAGIC("HPGL", 0, "IN;"), - MAGIC("HTML", 1, "HTML"), - MAGIC("HTML", 1, "html"), - MAGIC("ILBM", 8, "ILBM"), - MAGIC("IPTCWTEXT", 0, "\062\000#\000\060\000=\000\042\000&\000#\000\060\000;\000&\000#\000\062\000;\000\042\000"), - MAGIC("IPTCTEXT", 0, "2#0=\042�\042"), - MAGIC("IPTC", 0, "\034\002"), - MAGIC("JNG", 0, "\213JNG\r\n\032\n"), - MAGIC("JPEG", 0, "\377\330\377"), - MAGIC("JPC", 0, "\377\117"), - MAGIC("JP2", 4, "\152\120\040\040\015"), - MAGIC("JXL", 0, "\xff\x0a"), - MAGIC("JXL", 0, "\x00\x00\x00\x0c\x4a\x58\x4c\x20\x0d\x0a\x87\x0a"), - MAGIC("MAT", 0, "MATLAB 5.0 MAT-file,"), - MAGIC("MIFF", 0, "Id=ImageMagick"), - MAGIC("MIFF", 0, "id=ImageMagick"), - MAGIC("MNG", 0, "\212MNG\r\n\032\n"), - MAGIC("MPC", 0, "id=MagickCache"), - MAGIC("MPEG", 0, "\000\000\001\263"), - MAGIC("PCD", 2048, "PCD_"), - MAGIC("PCL", 0, "\033E\033"), - MAGIC("PCX", 0, "\012\002"), - MAGIC("PCX", 0, "\012\005"), - MAGIC("PDB", 60, "vIMGView"), - MAGIC("PDF", 0, "%PDF-"), - MAGIC("PFA", 0, "%!PS-AdobeFont-1.0"), - MAGIC("PFB", 6, "%!PS-AdobeFont-1.0"), - MAGIC("PGX", 0, "PG ML"), - MAGIC("PGX", 0, "PG LM"), - MAGIC("PICT", 522, "\000\021\002\377\014\000"), - MAGIC("PNG", 0, "\211PNG\r\n\032\n"), - MAGIC("PBM", 0, "P1"), - MAGIC("PGM", 0, "P2"), - MAGIC("PPM", 0, "P3"), - MAGIC("PBM", 0, "P4"), - MAGIC("PGM", 0, "P5"), - MAGIC("PPM", 0, "P6"), - MAGIC("P7", 0, "P7 332"), /* XV Thumbnail */ - MAGIC("PAM", 0, "P7"), /* Should be listed after "P7 332" */ - MAGIC("PS", 0, "%!"), - MAGIC("PS", 0, "\004%!"), - MAGIC("PS", 0, "\305\320\323\306"), - MAGIC("PSD", 0, "8BPS"), - MAGIC("PWP", 0, "SFW95"), - MAGIC("RAD", 0, "#?RADIANCE"), - MAGIC("RAD", 0, "VIEW= "), - MAGIC("RLE", 0, "\122\314"), - MAGIC("SCT", 0, "CT"), - MAGIC("SFW", 0, "SFW94"), - MAGIC("SGI", 0, "\001\332"), - MAGIC("SUN", 0, "\131\246\152\225"), - MAGIC("SVG", 1, "?XML"), - MAGIC("SVG", 1, "?xml"), - MAGIC("TIFF", 0, "\115\115\000\052"), - MAGIC("TIFF", 0, "\111\111\052\000"), - MAGIC("TOPOL", 0, " "), - MAGIC("BIGTIFF", 0, "\115\115\000\053\000\010\000\000"), - MAGIC("BIGTIFF", 0, "\111\111\053\000\010\000\000\000"), - MAGIC("VICAR", 0, "LBLSIZE"), - MAGIC("VICAR", 0, "NJPL1I"), - MAGIC("VIFF", 0, "\253\001"), - MAGIC("WMF", 0, "\327\315\306\232"), - MAGIC("WMF", 0, "\001\000\011\000"), - MAGIC("WPG", 0, "\377WPC"), - MAGIC("XBM", 0, "#define"), - MAGIC("XCF", 0, "gimp xcf"), - MAGIC("XPM", 1, "* XPM *"), - MAGIC("XWD", 4, "\007\000\000"), - MAGIC("XWD", 5, "\000\000\007") +#define MAGIC(name,description,offset,magic) {name,(const unsigned char * const)magic,description, sizeof(magic)-1,offset} + MAGIC("WEBP", "WebP Image Format", 8, "WEBP"), + MAGIC("AVIF", "HEIF AV1 image", 4, "ftypavif"), + MAGIC("AVIF", "HEIF AV1 image sequence", 4, "ftypavis"), + /* MAGIC("AVI", "", 0, "RIFF"), */ + MAGIC("8BIMWTEXT", "Photoshop resource wide text format", 0, "8\000B\000I\000M\000#"), + MAGIC("8BIMTEXT", "Photoshop resource text format", 0, "8BIM#"), + MAGIC("8BIM", "Photoshop resource format", 0, "8BIM"), + MAGIC("BMP", "BMP BA", 0, "BA"), + MAGIC("BMP", "BMP BM", 0, "BM"), + MAGIC("BMP", "BMP CI", 0, "CI"), + MAGIC("BMP", "BMP CP", 0, "CP"), + MAGIC("BMP", "BMP IC", 0, "IC"), + MAGIC("BMP", "BMP PI", 0, "PI"), + MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 21, "version: MIL-STD-1840"), + MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 0, "srcdocid:"), + MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 9, "srcdocid:"), + MAGIC("CALS", "Continuous Acquisition and Life-cycle Support Type 1 image", 8, "rorient:"), + MAGIC("CGM", "Computer Graphics Metaformat", 0, "BEGMF"), + MAGIC("CIN", "Cineon Image File", 0, "\200\052\137\327"), + MAGIC("DCM", "DICOM", 128, "DICM"), + MAGIC("DCX", "ZSoft IBM PC multi-page Paintbrush", 0, "\261\150\336\72"), + MAGIC("DIB", "Microsoft DIB", 0, "\050\000"), + MAGIC("DOT", "Graphviz DOT", 0, "digraph"), + MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "SDPX"), + MAGIC("DPX", "SMPTE 268M-2003 (DPX 2.0)", 0, "XPDS"), + MAGIC("EMF", "Microsoft EMF", 40, "\040\105\115\106\000\000\001\000"), + MAGIC("EPT", "Adobe Encapsulated PostScript with MS-DOS TIFF preview", 0, "\305\320\323\306"), + MAGIC("FAX", "Group 3 FAX", 0, "DFAX"), + MAGIC("FIG", "Xfig", 0, "#FIG"), + MAGIC("FITS", "Flexible Image Transport System", 0, "IT0"), + MAGIC("FITS", "Flexible Image Transport System", 0, "SIMPLE"), + MAGIC("FPX", "FlashPIX", 0, "\320\317\021\340"), + MAGIC("GIF", "CompuServe graphics interchange format", 0, "GIF8"), + MAGIC("HEIC", "HEIF - A regular heif image", 4, "ftypheic"), + MAGIC("HEIC", "HEIF - Extended range (>8 bit) image", 4, "ftypheix"), + MAGIC("HEIF", "HEIF - Image sequence", 4, "ftyphevc"), + MAGIC("HEIF", "HEIF - Image sequence", 4, "ftypheim"), + MAGIC("HEIF", "HEIF - Scalable image", 4, "ftypheis"), + MAGIC("HEIF", "HEIF - Multiview sequence", 4, "ftyphevm"), + MAGIC("HEIF", "HEIF - Scalable sequence", 4, "ftyphevs"), + MAGIC("HEIC", "HEIF - Nokia alpha image", 4, "ftypmif1"), + MAGIC("HEIC", "HEIF - Nokia animation image", 4, "ftypmsf1"), + MAGIC("HDF", "Heirarchical Data Format", 1, "HDF"), + MAGIC("HPGL", "HP Graphics Language", 0, "IN;"), + MAGIC("HTML", "Hypertext Markup Language", 1, "HTML"), + MAGIC("HTML", "Hypertext Markup Language", 1, "html"), + MAGIC("ILBM", "", 8, "ILBM"), + MAGIC("IPTCWTEXT", "IPTC Newsphoto wide text format", 0, "\062\000#\000\060\000=\000\042\000&\000#\000\060\000;\000&\000#\000\062\000;\000\042\000"), + MAGIC("IPTCTEXT", "IPTC Newsphoto text format", 0, "2#0=\042�\042"), + MAGIC("IPTC", "IPTC Newsphoto", 0, "\034\002"), + MAGIC("JNG", "JPEG Network Graphics", 0, "\213JNG\r\n\032\n"), + MAGIC("JPEG", "Joint Photographic Experts Group JFIF format", 0, "\377\330\377"), + MAGIC("JPC", "JPEG-2000 Code Stream Syntax", 0, "\377\117"), + MAGIC("JP2", "JPEG-2000 JP2 File Format", 4, "\152\120\040\040\015"), + MAGIC("JXL", "JPEG XL Image Format", 0, "\xff\x0a"), + MAGIC("JXL", "JPEG XL Image Format", 0, "\x00\x00\x00\x0c\x4a\x58\x4c\x20\x0d\x0a\x87\x0a"), + MAGIC("MAT", "MATLAB Level 4.0-7.0 image format", 0, "MATLAB 5.0 MAT-file,"), + MAGIC("MIFF", "Magick Image File Format", 0, "Id=ImageMagick"), + MAGIC("MIFF", "Magick Image File Format", 0, "id=ImageMagick"), + MAGIC("MNG", "Multiple-image Network Graphics", 0, "\212MNG\r\n\032\n"), + MAGIC("MPC", "Magick Persistent Cache image format", 0, "id=MagickCache"), + MAGIC("MPEG", "MPEG Video Stream", 0, "\000\000\001\263"), + MAGIC("PCD", "Adobe Photo CD", 2048, "PCD_"), + MAGIC("PCL", "HP Page Control Language", 0, "\033E\033"), + MAGIC("PCX", "ZSoft IBM PC Paintbrush", 0, "\012\002"), + MAGIC("PCX", "ZSoft IBM PC Paintbrush", 0, "\012\005"), + MAGIC("PDB", "Palm Database ImageViewer Format", 60, "vIMGView"), + MAGIC("PDF", "Portable Document Format", 0, "%PDF-"), + MAGIC("PFA", "Postscript Type 1 font (ASCII)", 0, "%!PS-AdobeFont-1.0"), + MAGIC("PFB", "Postscript Type 1 font (binary)", 6, "%!PS-AdobeFont-1.0"), + MAGIC("PGX", "JPEG-2000 VM Format (ML)", 0, "PG ML"), + MAGIC("PGX", "JPEG-2000 VM Format (LM)", 0, "PG LM"), + MAGIC("PICT", "Apple Macintosh QuickDraw/PICT", 522, "\000\021\002\377\014\000"), + MAGIC("PNG", "Portable Network Graphics", 0, "\211PNG\r\n\032\n"), + MAGIC("PBM", "Portable bitmap file format (text)", 0, "P1"), + MAGIC("PGM", "Portable graymap file format (text)", 0, "P2"), + MAGIC("PPM", "Portable pixmap file format (text)", 0, "P3"), + MAGIC("PBM", "Portable bitmap file format (binary)", 0, "P4"), + MAGIC("PGM", "Portable graymap file format (binary)", 0, "P5"), + MAGIC("PPM", "Portable pixmap file format (binary)", 0, "P6"), + MAGIC("P7", "XV Thumbnail (P7 332)", 0, "P7 332"), /* XV Thumbnail */ + MAGIC("PAM", "XV Thumbnail (P7)", 0, "P7"), /* Should be listed after "P7 332" */ + MAGIC("PS", "Adobe Postscript", 0, "%!"), + MAGIC("PS", "Adobe Postscript", 0, "\004%!"), + MAGIC("PS", "Adobe Postscript", 0, "\305\320\323\306"), + MAGIC("PSD", "Photoshop PSD", 0, "8BPS"), + MAGIC("PWP", "Seattle Film Works", 0, "SFW95"), + MAGIC("RAD", "Radiance", 0, "#?RADIANCE"), + MAGIC("RAD", "Radiance", 0, "VIEW= "), + MAGIC("RLE", "Utah Run length encoded image", 0, "\122\314"), + MAGIC("SCT", "Scitex HandShake", 0, "CT"), + MAGIC("SFW", "Seattle Film Work", 0, "SFW94"), + MAGIC("SGI", "Irix RGB image", 0, "\001\332"), + MAGIC("SUN", "SUN Rasterfile", 0, "\131\246\152\225"), + MAGIC("SVG", "Scalable Vector Graphics", 1, "?XML"), + MAGIC("SVG", "Scalable Vector Graphics", 1, "?xml"), + MAGIC("TIFF", "Tagged Image File Format", 0, "\115\115\000\052"), + MAGIC("TIFF", "Tagged Image File Format", 0, "\111\111\052\000"), + MAGIC("TOPOL", "TopoL X Image", 0, " "), + MAGIC("BIGTIFF", "Tagged Image File Format (64 bit)", 0, "\115\115\000\053\000\010\000\000"), + MAGIC("BIGTIFF", "Tagged Image File Format (64 bit)", 0, "\111\111\053\000\010\000\000\000"), + MAGIC("VICAR", "VICAR rasterfile format (LBLSIZE)", 0, "LBLSIZE"), + MAGIC("VICAR", "VICAR rasterfile format (NJPL1I)", 0, "NJPL1I"), + MAGIC("VIFF","Khoros Visualization image", 0, "\253\001"), + MAGIC("WMF", "Windows Meta File", 0, "\327\315\306\232"), + MAGIC("WMF", "Windows Meta File", 0, "\001\000\011\000"), + MAGIC("WPG", "Word Perfect Graphics", 0, "\377WPC"), + MAGIC("XBM", "X Windows system bitmap", 0, "#define"), + MAGIC("XCF", "GIMP XCF", 0, "gimp xcf"), + MAGIC("XPM", "X Windows system pixmap", 1, "* XPM *"), + MAGIC("XWD", "X Windows system window dump", 4, "\007\000\000"), + MAGIC("XWD", "X Windows system window dump", 5, "\000\000\007") }; /* @@ -271,7 +274,13 @@ StaticMagic[i].length) == 0)) { if (strlcpy(format,StaticMagic[i].name,format_length) < format_length) - status=MagickPass; + { + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "Magick: %s (\"%s\")", + StaticMagic[i].name, + StaticMagic[i].description); + status=MagickPass; + } break; } } diff -r 339ea5233db0 -r d1810a5bf3a3 magick/version.h --- a/magick/version.h Wed Jan 29 15:19:59 2025 -0600 +++ b/magick/version.h Mon Feb 03 15:19:48 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250129" -#define MagickReleaseDate "snapshot-20250129" +#define MagickChangeDate "20250203" +#define MagickReleaseDate "snapshot-20250203" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 339ea5233db0 -r d1810a5bf3a3 www/ChangeLog.html --- a/www/ChangeLog.html Wed Jan 29 15:19:59 2025 -0600 +++ b/www/ChangeLog.html Mon Feb 03 15:19:48 2025 -0600 @@ -38,6 +38,15 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-02-03 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>magick/magic.c: Add a Magic description field in order to help +identify and document format variants based on header magic. +(GetMagickFileFormat): Trace the format description at Coder +level.</p></li> +</ul> +</blockquote> <p>2025-01-29 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-29 21:20:40
|
changeset 339ea5233db0 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=339ea5233db0 summary: coders/png.c (WriteOnePNGImage): Ignore exessively short ICM profiles. diffstat: ChangeLog | 5 ++++ coders/png.c | 65 +++++++++++++++++++++++++++++++++-------------------- www/ChangeLog.html | 4 +++ 3 files changed, 49 insertions(+), 25 deletions(-) diffs (107 lines): diff -r 482aaf1cc48c -r 339ea5233db0 ChangeLog --- a/ChangeLog Wed Jan 29 10:26:55 2025 -0600 +++ b/ChangeLog Wed Jan 29 15:19:59 2025 -0600 @@ -1,5 +1,10 @@ 2025-01-29 Bob Friesenhahn <bfr...@si...> + * coders/png.c (WriteOnePNGImage): Ignore exessively short ICM + profiles. Should address oss-fuzz 392927700 + "graphicsmagick:coder_PNG64_fuzzer: Heap-buffer-overflow in + png_write_iCCP". + * magick/magic.c (StaticMagic): Identify some more HEIF sub-formats. diff -r 482aaf1cc48c -r 339ea5233db0 coders/png.c --- a/coders/png.c Wed Jan 29 10:26:55 2025 -0600 +++ b/coders/png.c Wed Jan 29 15:19:59 2025 -0600 @@ -8297,35 +8297,50 @@ LocaleLower(profile_name); if (LocaleCompare(profile_name,"ICM") == 0) { + if (profile_length < 132) + { + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Ignoring %s profile (%u byte%s)" + " because it is too short!", + profile_name, + (unsigned int) profile_length, + profile_length > 1 ? "s" : ""); + } + else + { #if defined(PNG_WRITE_iCCP_SUPPORTED) - { - if (logging) - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " Setting up iCCP chunk"); - - png_set_iCCP(ping,ping_info,(png_charp) "icm", - (int) 0, + { + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Setting up iCCP chunk (%u byte%s)", + (unsigned int) profile_length, + profile_length > 1 ? "s" : ""); + + png_set_iCCP(ping,ping_info,(png_charp) "icm", + (int) 0, #if (PNG_LIBPNG_VER < 10500) - (png_charp) profile_info, + (png_charp) profile_info, #else - (png_const_bytep) profile_info, -#endif - - (png_uint_32) profile_length); - } + (png_const_bytep) profile_info, +#endif + + (png_uint_32) profile_length); + } #else - { - if (logging) - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " Setting up text chunk with" - " iCCP Profile"); - png_write_raw_profile(image_info,ping,ping_info, - "icm", - "ICC Profile", - profile_info, - (png_uint_32) profile_length); - } -#endif + { + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Setting up text chunk with" + " iCCP Profile"); + png_write_raw_profile(image_info,ping,ping_info, + "icm", + "ICC Profile", + profile_info, + (png_uint_32) profile_length); + } +#endif + } } else if (LocaleCompare(profile_name,"IPTC") == 0) { diff -r 482aaf1cc48c -r 339ea5233db0 www/ChangeLog.html --- a/www/ChangeLog.html Wed Jan 29 10:26:55 2025 -0600 +++ b/www/ChangeLog.html Wed Jan 29 15:19:59 2025 -0600 @@ -41,6 +41,10 @@ <p>2025-01-29 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/png.c (WriteOnePNGImage): Ignore exessively short ICM +profiles. Should address oss-fuzz 392927700 +"graphicsmagick:coder_PNG64_fuzzer: Heap-buffer-overflow in +png_write_iCCP".</p></li> <li><p>magick/magic.c (StaticMagic): Identify some more HEIF sub-formats.</p></li> <li><p>coders/heif.c (ReadHEIFImage): Request the primary image handle |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-29 16:27:32
|
changeset 9f09bb6ab080 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9f09bb6ab080 summary: coders/heif.c: Request the primary image handle from libheif. Do not throw an error if there is more than one image in the heif. changeset 482aaf1cc48c in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=482aaf1cc48c summary: magick/magic.c: Identify some more HEIF sub-formats. diffstat: ChangeLog | 11 +++++++++++ VisualMagick/installer/inc/version.isx | 4 ++-- coders/heif.c | 33 +++++++++++++++++---------------- fuzzing/README.txt | 7 +++++++ magick/magic.c | 17 ++++++++++++----- magick/version.h | 4 ++-- www/ChangeLog.html | 12 ++++++++++++ 7 files changed, 63 insertions(+), 25 deletions(-) diffs (171 lines): diff -r 2290d0e25d1d -r 482aaf1cc48c ChangeLog --- a/ChangeLog Sat Jan 25 08:43:21 2025 -0600 +++ b/ChangeLog Wed Jan 29 10:26:55 2025 -0600 @@ -1,3 +1,14 @@ +2025-01-29 Bob Friesenhahn <bfr...@si...> + + * magick/magic.c (StaticMagic): Identify some more HEIF + sub-formats. + + * coders/heif.c (ReadHEIFImage): Request the primary image handle + from libheif. Do not throw an error if there is more than one + image in the heif. Patch by Kevin Clauson and submitted via + SourceForge patch #84 "Patch: use primary image for heic even when + have multiple image". + 2025-01-25 Bob Friesenhahn <bfr...@si...> * coders/heif.c (ReadMetadata): Only apply Exif orientation if diff -r 2290d0e25d1d -r 482aaf1cc48c VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sat Jan 25 08:43:21 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Wed Jan 29 10:26:55 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250125" -#define public MagickPackageReleaseDate "snapshot-20250125" +#define public MagickPackageVersionAddendum ".020250129" +#define public MagickPackageReleaseDate "snapshot-20250129" diff -r 2290d0e25d1d -r 482aaf1cc48c coders/heif.c --- a/coders/heif.c Sat Jan 25 08:43:21 2025 -0600 +++ b/coders/heif.c Wed Jan 29 10:26:55 2025 -0600 @@ -591,29 +591,30 @@ ThrowHEIFReaderException(CorruptImageError, AnErrorHasOccurredReadingFromFile, image); } - /* FIXME: no support for reading multiple images but should be added */ + /* FIXME: no support for reading multiple images but should be + added, if multiple images will use primary image */ { int number_of_top_level_images; number_of_top_level_images=heif_context_get_number_of_top_level_images(heif); if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "heif_context_get_number_of_top_level_images() reports %d images", + "Number of top level images: %d (reading primary image only)", number_of_top_level_images); - if (number_of_top_level_images != 1) - ThrowHEIFReaderException(CoderError, NumberOfImagesIsNotSupported, image); - } + if (number_of_top_level_images == 0) + ThrowHEIFReaderException(CorruptImageError, AnErrorHasOccurredReadingFromFile, image); - heif_status=heif_context_get_primary_image_handle(heif, &heif_image_handle); - if (heif_status.code == heif_error_Memory_allocation_error) - ThrowHEIFReaderException(ResourceLimitError,MemoryAllocationFailed,image); - if (heif_status.code != heif_error_Ok) - { - if (image->logging) - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "heif_context_get_primary_image_handle() reports error \"%s\"", - heif_status.message); - ThrowHEIFReaderException(CorruptImageError, AnErrorHasOccurredReadingFromFile, image); - } + heif_status=heif_context_get_primary_image_handle(heif, &heif_image_handle); + if (heif_status.code == heif_error_Memory_allocation_error) + ThrowHEIFReaderException(ResourceLimitError, MemoryAllocationFailed, image); + if (heif_status.code != heif_error_Ok) + { + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "heif_context_get_primary_image_handle() reports error \"%s\"", + heif_status.message); + ThrowHEIFReaderException(CorruptImageError, AnErrorHasOccurredReadingFromFile, image); + } + } /* Note: Those values are preliminary but likely the upper bound diff -r 2290d0e25d1d -r 482aaf1cc48c fuzzing/README.txt --- a/fuzzing/README.txt Sat Jan 25 08:43:21 2025 -0600 +++ b/fuzzing/README.txt Wed Jan 29 10:26:55 2025 -0600 @@ -143,6 +143,13 @@ make -j 8 make install +jpeg +++++ + +With sources under libjpeg-turbo:: + +cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O -g' -DCMAKE_INSTALL_RPATH='/usr/local/lib' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DBUILD_SHARED_LIBS=ON -DWITH_JPEG8=1 /home/bfriesen/src/libjpeg-turbo + libheif +++++++ diff -r 2290d0e25d1d -r 482aaf1cc48c magick/magic.c --- a/magick/magic.c Sat Jan 25 08:43:21 2025 -0600 +++ b/magick/magic.c Wed Jan 29 10:26:55 2025 -0600 @@ -1,5 +1,5 @@ /* -% Copyright (C) 2003-2022 GraphicsMagick Group +% Copyright (C) 2003-2025 GraphicsMagick Group % Copyright (C) 2002 ImageMagick Studio % % This program is covered by multiple licenses, which are described in @@ -60,7 +60,8 @@ { #define MAGIC(name,offset,magic) {name,(const unsigned char * const)magic,sizeof(magic)-1,offset} MAGIC("WEBP", 8, "WEBP"), - MAGIC("AVIF", 4, "ftypavif"), + MAGIC("AVIF", 4, "ftypavif"), /* HEIF: AV1 image */ + MAGIC("AVIF", 4, "ftypavis"), /* HEIF: AV1 image sequence */ /* MAGIC("AVI", 0, "RIFF"), */ MAGIC("8BIMWTEXT", 0, "8\000B\000I\000M\000#"), MAGIC("8BIMTEXT", 0, "8BIM#"), @@ -91,9 +92,15 @@ MAGIC("FITS", 0, "SIMPLE"), MAGIC("FPX", 0, "\320\317\021\340"), MAGIC("GIF", 0, "GIF8"), - MAGIC("HEIC", 4, "ftypheic"), - MAGIC("HEIC", 4, "ftypheix"), - MAGIC("HEIC", 4, "ftypmif1"), + MAGIC("HEIC", 4, "ftypheic"), /* HEIF: A regular heif image */ + MAGIC("HEIC", 4, "ftypheix"), /* HEIF: Extended range (>8 bit) image */ + MAGIC("HEIF", 4, "ftyphevc"), /* HEIF: Image sequence */ + MAGIC("HEIF", 4, "ftypheim"), /* HEIF: Image sequence */ + MAGIC("HEIF", 4, "ftypheis"), /* HEIF: Scalable image */ + MAGIC("HEIF", 4, "ftyphevm"), /* HEIF: Multiview sequence */ + MAGIC("HEIF", 4, "ftyphevs"), /* HEIF: Scalable sequence*/ + MAGIC("HEIC", 4, "ftypmif1"), /* HEIF: Nokia alpha_ image */ + MAGIC("HEIC", 4, "ftypmsf1"), /* HEIF: Nokia animation image */ MAGIC("HDF", 1, "HDF"), MAGIC("HPGL", 0, "IN;"), MAGIC("HTML", 1, "HTML"), diff -r 2290d0e25d1d -r 482aaf1cc48c magick/version.h --- a/magick/version.h Sat Jan 25 08:43:21 2025 -0600 +++ b/magick/version.h Wed Jan 29 10:26:55 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250125" -#define MagickReleaseDate "snapshot-20250125" +#define MagickChangeDate "20250129" +#define MagickReleaseDate "snapshot-20250129" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 2290d0e25d1d -r 482aaf1cc48c www/ChangeLog.html --- a/www/ChangeLog.html Sat Jan 25 08:43:21 2025 -0600 +++ b/www/ChangeLog.html Wed Jan 29 10:26:55 2025 -0600 @@ -38,6 +38,18 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-01-29 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>magick/magic.c (StaticMagic): Identify some more HEIF +sub-formats.</p></li> +<li><p>coders/heif.c (ReadHEIFImage): Request the primary image handle +from libheif. Do not throw an error if there is more than one +image in the heif. Patch by Kevin Clauson and submitted via +SourceForge patch #84 "Patch: use primary image for heic even when +have multiple image".</p></li> +</ul> +</blockquote> <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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-25 14:44:05
|
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 <bfr...@si...> + + * 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 <bfr...@si...> * 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-24 15:55:00
|
changeset b91cc8aa0f26 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b91cc8aa0f26 summary: MagickSetImagePixels(): Promote image to matte automatically. Support updating individual channels. diffstat: ChangeLog | 8 ++++ VisualMagick/installer/inc/version.isx | 4 +- magick/version.h | 4 +- wand/magick_wand.c | 68 ++++++++++++++++++++++++++++++++- www/ChangeLog.html | 10 +++++ www/wand/magick_wand.html | 12 +++++- 6 files changed, 97 insertions(+), 9 deletions(-) diffs (178 lines): diff -r efac1f4750fb -r b91cc8aa0f26 ChangeLog --- a/ChangeLog Fri Jan 17 08:45:42 2025 -0600 +++ b/ChangeLog Fri Jan 24 09:53:11 2025 -0600 @@ -1,3 +1,11 @@ +2025-01-24 Bob Friesenhahn <bfr...@si...> + + * wand/magick_wand.c (MagickSetImagePixels): If update image has + matte, then promote canvas image to have matte. Support composing + individual channels 'R', 'G', 'B', 'A', 'O', 'T', 'C', 'M', 'Y', + 'K'. Intended to address SourceForge issue #752 + "MagickResizeImage() discarding alpha values". + 2025-01-17 Bob Friesenhahn <bfr...@si...> * tests/rwfile.c: Fix another GCC warning. diff -r efac1f4750fb -r b91cc8aa0f26 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Fri Jan 17 08:45:42 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Fri Jan 24 09:53:11 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250117" -#define public MagickPackageReleaseDate "snapshot-20250117" +#define public MagickPackageVersionAddendum ".020250124" +#define public MagickPackageReleaseDate "snapshot-20250124" diff -r efac1f4750fb -r b91cc8aa0f26 magick/version.h --- a/magick/version.h Fri Jan 17 08:45:42 2025 -0600 +++ b/magick/version.h Fri Jan 24 09:53:11 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250117" -#define MagickReleaseDate "snapshot-20250117" +#define MagickChangeDate "20250124" +#define MagickReleaseDate "snapshot-20250124" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r efac1f4750fb -r b91cc8aa0f26 wand/magick_wand.c --- a/wand/magick_wand.c Fri Jan 17 08:45:42 2025 -0600 +++ b/wand/magick_wand.c Fri Jan 24 09:53:11 2025 -0600 @@ -9185,15 +9185,24 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetImagePixels() accepts pixel data and stores it in the image at the -% location you specify. The method returns False on success otherwise True +% location you specify. The method returns False on success, otherwise True % if an error is encountered. The pixel data can be either char, short int, % int, long, float, or double in the order specified by map. % -% Suppose your want want to upload the first scanline of a 640x480 image from +% Suppose you want to upload the first scanline of a 640x480 image from % character data in red-green-blue order: % % MagickSetImagePixels(wand,0,0,0,640,1,"RGB",CharPixel,pixels); % +% The API user is responsible for assuring that pixels in the entire +% image are initialized properly. If non-opaque pixels are to be +% supported (e.g. "RGBA") but the image does not already have an +% opacity channel (e.g. MagickGetImageMatte() returns False), please use +% MagickSetImageMatte() to set Matte true, and then assure that the +% opacity channel is initialized for all of the pixels. This is necessary +% even if the region specified to MagickSetImagePixels() includes the +% entire image. +% % The format of the MagickSetImagePixels method is: % % unsigned int MagickSetImagePixels(MagickWand *wand, @@ -9251,7 +9260,60 @@ ConstituteImage(columns,rows,map,storage,pixels,&image->exception); if (constitute_image) { - (void) CompositeImage(image,CopyCompositeOp,constitute_image,x_offset, + CompositeOperator + compose = CopyCompositeOp; + + /* + Support the ability to update an individual image channel + (e.g. 'A'). This is not efficient given that it requires + creating a whole image. + + FIXME: It would be nice to support updating arbitrary + combinations of channels (e.g. "BG", "R", "A") via multiple + calls. This requires a special purpose implementation rather + than using CompositeImage(). + */ + if (strlen(map) == 1) + { + switch (map[0]) + { + case 'R': + compose = CopyRedCompositeOp; + break; + case 'G': + compose = CopyGreenCompositeOp; + break; + case 'B': + compose = CopyBlueCompositeOp; + break; + case 'A': + case 'O': + case 'T': + compose = CopyOpacityCompositeOp; + break; + case 'C': + compose = CopyCyanCompositeOp; + break; + case 'M': + compose = CopyMagentaCompositeOp; + break; + case 'Y': + compose = CopyYellowCompositeOp; + break; + case 'K': + compose = CopyBlackCompositeOp; + break; + default: + { + } + } + } + + if (constitute_image->matte && !image->matte) + { + image->matte = constitute_image->matte; + } + (void) CompositeImage(image,compose,constitute_image,x_offset, y_offset); DestroyImage(constitute_image); status = (image->exception.severity == UndefinedException); diff -r efac1f4750fb -r b91cc8aa0f26 www/ChangeLog.html --- a/www/ChangeLog.html Fri Jan 17 08:45:42 2025 -0600 +++ b/www/ChangeLog.html Fri Jan 24 09:53:11 2025 -0600 @@ -38,6 +38,16 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<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"> +<li><p>wand/magick_wand.c (MagickSetImagePixels): If update image has +matte, then promote canvas image to have matte. Support composing +individual channels 'R', 'G', 'B', 'A', 'O', 'T', 'C', 'M', 'Y', +'K'. Intended to address SourceForge issue #752 +"MagickResizeImage() discarding alpha values".</p></li> +</ul> +</blockquote> <p>2025-01-17 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"> diff -r efac1f4750fb -r b91cc8aa0f26 www/wand/magick_wand.html --- a/www/wand/magick_wand.html Fri Jan 17 08:45:42 2025 -0600 +++ b/www/wand/magick_wand.html Fri Jan 24 09:53:11 2025 -0600 @@ -5234,12 +5234,20 @@ <section id="id388"> <h2>Description</h2> <p>MagickSetImagePixels() accepts pixel data and stores it in the image at the -location you specify. The method returns False on success otherwise True +location you specify. The method returns False on success, otherwise True if an error is encountered. The pixel data can be either char, short int, int, long, float, or double in the order specified by map.</p> -<p>Suppose your want want to upload the first scanline of a 640x480 image from +<p>Suppose you want to upload the first scanline of a 640x480 image from character data in red-green-blue order:</p> <p>MagickSetImagePixels(wand,0,0,0,640,1,"RGB",CharPixel,pixels);</p> +<p>The API user is responsible for assuring that pixels in the entire +image are initialized properly. If non-opaque pixels are to be +supported (e.g. "RGBA") but the image does not already have an +opacity channel (e.g. MagickGetImageMatte() returns False), please use +MagickSetImageMatte() to set Matte true, and then assure that the +opacity channel is initialized for all of the pixels. This is necessary +even if the region specified to MagickSetImagePixels() includes the +entire image.</p> <p>The format of the MagickSetImagePixels method is:</p> <pre class="literal-block">unsigned int MagickSetImagePixels( MagickWand *wand, const long x_offset, const long y_offset, const unsigned long columns, const unsigned long rows, |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-17 14:46:28
|
changeset efac1f4750fb in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=efac1f4750fb summary: tests/rwfile.c: Fix another GCC warning. diffstat: ChangeLog | 4 ++++ VisualMagick/installer/inc/version.isx | 4 ++-- magick/version.h | 4 ++-- tests/rwfile.c | 6 ++++-- www/ChangeLog.html | 6 ++++++ 5 files changed, 18 insertions(+), 6 deletions(-) diffs (71 lines): diff -r 5165261111c1 -r efac1f4750fb ChangeLog --- a/ChangeLog Wed Jan 15 10:39:15 2025 -0600 +++ b/ChangeLog Fri Jan 17 08:45:42 2025 -0600 @@ -1,3 +1,7 @@ +2025-01-17 Bob Friesenhahn <bfr...@si...> + + * tests/rwfile.c: Fix another GCC warning. + 2025-01-15 Bob Friesenhahn <bfr...@si...> * NEWS.txt: Update the news. diff -r 5165261111c1 -r efac1f4750fb VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Wed Jan 15 10:39:15 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Fri Jan 17 08:45:42 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250115" -#define public MagickPackageReleaseDate "snapshot-20250115" +#define public MagickPackageVersionAddendum ".020250117" +#define public MagickPackageReleaseDate "snapshot-20250117" diff -r 5165261111c1 -r efac1f4750fb magick/version.h --- a/magick/version.h Wed Jan 15 10:39:15 2025 -0600 +++ b/magick/version.h Fri Jan 17 08:45:42 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250115" -#define MagickReleaseDate "snapshot-20250115" +#define MagickChangeDate "20250117" +#define MagickReleaseDate "snapshot-20250117" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 5165261111c1 -r efac1f4750fb tests/rwfile.c --- a/tests/rwfile.c Wed Jan 15 10:39:15 2025 -0600 +++ b/tests/rwfile.c Fri Jan 17 08:45:42 2025 -0600 @@ -329,11 +329,13 @@ Prepend magic specifier if extension will be ignored. */ (void) snprintf(filespec, sizeof(filespec), "%.*s:%.*s%s", 32, format, - (int) sizeof(filespec)-37 , basefilespec, ".%s"); + (int) sizeof(filespec)-37, basefilespec, ".%s"); } else { - (void) snprintf(filespec, sizeof(filespec), "%s%s", basefilespec, ".%s"); + (void) snprintf(filespec, sizeof(filespec), "%.*s%s", + (int) (sizeof(filespec)-sizeof(".%s")), basefilespec, + ".%s"); } (void) snprintf( filename, sizeof(filename), filespec, 1, format ); diff -r 5165261111c1 -r efac1f4750fb www/ChangeLog.html --- a/www/ChangeLog.html Wed Jan 15 10:39:15 2025 -0600 +++ b/www/ChangeLog.html Fri Jan 17 08:45:42 2025 -0600 @@ -38,6 +38,12 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-01-17 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>tests/rwfile.c: Fix another GCC warning.</p></li> +</ul> +</blockquote> <p>2025-01-15 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-15 16:40:09
|
changeset fa9f006357ed in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=fa9f006357ed summary: Added tag GraphicsMagick-1_3_42 for changeset 8f02b37bc3d6 changeset ed87ccf127ac in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=ed87ccf127ac summary: Added tag GraphicsMagick-1_3_43 for changeset 8f02b37bc3d6 changeset bbb58ab3081d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=bbb58ab3081d summary: Removed tag GraphicsMagick-1_3_42 changeset a131be50667e in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=a131be50667e summary: Added tag GraphicsMagick-1_3_42 for changeset 6ae1ff7cda9d changeset 5165261111c1 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=5165261111c1 summary: JPEG: Properly invert CMYK components when writing. diffstat: .hgtags | 7 + ChangeLog | 14 +++ Makefile.am | 2 +- Makefile.in | 4 +- NEWS.txt | 5 +- VisualMagick/installer/inc/version.isx | 4 +- coders/jpeg.c | 122 ++++++++++++++++++++++++-------- magick/version.h | 4 +- www/ChangeLog.html | 22 ++++- www/INSTALL-unix.html | 12 ++- www/INSTALL-unix.rst | 12 ++- www/Makefile.am | 2 +- www/NEWS.html | 4 +- 13 files changed, 159 insertions(+), 55 deletions(-) diffs (485 lines): diff -r e5d4aab85dc2 -r 5165261111c1 .hgtags --- a/.hgtags Mon Jan 06 10:43:14 2025 -0600 +++ b/.hgtags Wed Jan 15 10:39:15 2025 -0600 @@ -74,3 +74,10 @@ 24d85185b7a3b5a5e9cc74ebf7d0e94ca60d7157 ImageMagick-5_2_6 bc8483ab69f9a2752475e122fa60dc024040b865 ImageMagick-5_2_7 c4404631fa1c5235083ddff0653ad93c10e4829b ImageMagick-5_2_5 +8f02b37bc3d6a9af4e7ce7e108d261c8ba754fb8 GraphicsMagick-1_3_42 +eff5b40bc7702651ceffbe0eeb26d5cd278abf95 GraphicsMagick-1_3_43 +8f02b37bc3d6a9af4e7ce7e108d261c8ba754fb8 GraphicsMagick-1_3_43 +8f02b37bc3d6a9af4e7ce7e108d261c8ba754fb8 GraphicsMagick-1_3_42 +0000000000000000000000000000000000000000 GraphicsMagick-1_3_42 +0000000000000000000000000000000000000000 GraphicsMagick-1_3_42 +6ae1ff7cda9d507484bb17adfd889d06600a96ca GraphicsMagick-1_3_42 diff -r e5d4aab85dc2 -r 5165261111c1 ChangeLog --- a/ChangeLog Mon Jan 06 10:43:14 2025 -0600 +++ b/ChangeLog Wed Jan 15 10:39:15 2025 -0600 @@ -1,3 +1,17 @@ +2025-01-15 Bob Friesenhahn <bfr...@si...> + + * NEWS.txt: Update the news. + + * coders/jpeg.c (WriteJPEGImage): Properly invert CMYK components + when writing. Addresses SourceForge bug #751 "all CMYK colorspace + image become black-white inverted". This bug was introduced in + GraphicsMagick 1.3.43. Existing files which appear "corrupt" due + to this issue may be salvaged by using the -negate command like + "gm convert bad-cmyk.jpg -negate good-cmyk.jpg". + + * www/INSTALL-unix.rst: Document the Docutils version necessary to + format reStructuredText files to HTML format. + 2025-01-06 Bob Friesenhahn <bfr...@si...> * www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Pass an diff -r e5d4aab85dc2 -r 5165261111c1 Makefile.am --- a/Makefile.am Mon Jan 06 10:43:14 2025 -0600 +++ b/Makefile.am Wed Jan 15 10:39:15 2025 -0600 @@ -153,7 +153,7 @@ $(TESTS_EXTRA_DIST) \ $(UTILITIES_EXTRA_DIST) \ $(WAND_EXTRA_DIST) \ - $(WWWW_EXTRA_DIST) \ + $(WWW_EXTRA_DIST) \ $(WWWAPI_EXTRA_DIST) \ $(WWWWANDAPI_EXTRA_DIST) diff -r e5d4aab85dc2 -r 5165261111c1 Makefile.in --- a/Makefile.in Mon Jan 06 10:43:14 2025 -0600 +++ b/Makefile.in Wed Jan 15 10:39:15 2025 -0600 @@ -2896,7 +2896,7 @@ $(TESTS_EXTRA_DIST) \ $(UTILITIES_EXTRA_DIST) \ $(WAND_EXTRA_DIST) \ - $(WWWW_EXTRA_DIST) \ + $(WWW_EXTRA_DIST) \ $(WWWAPI_EXTRA_DIST) \ $(WWWWANDAPI_EXTRA_DIST) @@ -4707,7 +4707,7 @@ $(WWWDIR)/utilities.html\ $(WWWDIR)/wand/wand.html -WWWW_EXTRA_DIST = $(WWW_HTML_FILES) $(WWW_RST_FILES) +WWW_EXTRA_DIST = $(WWW_HTML_FILES) $(WWW_RST_FILES) WWW_MAINTAINER_TARGETS = $(WWW_HTML_FILES) $(WWWDIR)/color.html @MAINTAINER_MODE_TRUE@NAMED_COLORS = $(top_srcdir)/scripts/named_colors.py @MAINTAINER_MODE_TRUE@RST2HTML5 = $(top_srcdir)/scripts/rst2html5.py diff -r e5d4aab85dc2 -r 5165261111c1 NEWS.txt --- a/NEWS.txt Mon Jan 06 10:43:14 2025 -0600 +++ b/NEWS.txt Wed Jan 15 10:39:15 2025 -0600 @@ -6,7 +6,7 @@ GraphicsMagick News =================== -This file was last updated to reflect changes up to January 4, 2025. +This file was last updated to reflect changes up to January 15, 2025. Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the @@ -45,6 +45,9 @@ image is indicated to be opaque. This avoids issues with code which assumes that the opacity channel is always initialized. +* JPEG: Since GraphicsMagick 1.3.43, CMYK JPEG has been writing + inverted. This bug is now fixed. + * TclMagick: The TclMagick build uses the latest TEA tcl.m4 macros, while modernizing the Automake and Autoconf files. Many defects in the C code are corrected. The libttkcommon "shim" library, diff -r e5d4aab85dc2 -r 5165261111c1 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Mon Jan 06 10:43:14 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Wed Jan 15 10:39:15 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250106" -#define public MagickPackageReleaseDate "snapshot-20250106" +#define public MagickPackageVersionAddendum ".020250115" +#define public MagickPackageReleaseDate "snapshot-20250115" diff -r e5d4aab85dc2 -r 5165261111c1 coders/jpeg.c --- a/coders/jpeg.c Mon Jan 06 10:43:14 2025 -0600 +++ b/coders/jpeg.c Wed Jan 15 10:39:15 2025 -0600 @@ -2832,13 +2832,19 @@ } (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " Write JPEG Image: image->orientation = %d",image->orientation); + " Write JPEG Image: image->orientation = %d", + image->orientation); /* Transform image to user-requested colorspace. */ if (UndefinedColorspace != image_info->colorspace) { + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Transforming colorspace from %s to %s", + ColorspaceTypeToString(image->colorspace), + ColorspaceTypeToString(image_info->colorspace)); (void) TransformColorspace(image,image_info->colorspace); } /* @@ -2849,6 +2855,10 @@ else if (IsRGBCompatibleColorspace(image->colorspace) && !IsRGBColorspace(image->colorspace)) { + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Transforming colorspace from %s to RGB", + ColorspaceTypeToString(image->colorspace)); (void) TransformColorspace(image,RGBColorspace); } @@ -3038,6 +3048,9 @@ #endif /* if defined(HAVE_JPEG_ENABLE_LOSSLESS) && HAVE_JPEG_ENABLE_LOSSLESS */ #endif /* if defined(HAVE_JPEG16_WRITE_SCANLINES) && HAVE_JPEG16_WRITE_SCANLINES */ } + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set data precision: %u", jpeg_info.data_precision); } } if ((image->x_resolution == 0) || (image->y_resolution == 0)) @@ -3088,15 +3101,40 @@ if ((value=AccessDefinition(image_info,"jpeg","dct-method"))) { if (LocaleCompare(value,"ISLOW") == 0) - jpeg_info.dct_method=JDCT_ISLOW; + { + jpeg_info.dct_method=JDCT_ISLOW; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set DCT method ISLOW"); + } else if (LocaleCompare(value,"IFAST") == 0) - jpeg_info.dct_method=JDCT_IFAST; + { + jpeg_info.dct_method=JDCT_IFAST; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set DCT method IFAST"); + } else if (LocaleCompare(value,"FLOAT") == 0) - jpeg_info.dct_method=JDCT_FLOAT; + { + jpeg_info.dct_method=JDCT_FLOAT; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set DCT method FLOAT"); + } else if (LocaleCompare(value,"DEFAULT") == 0) - jpeg_info.dct_method=JDCT_DEFAULT; + { + jpeg_info.dct_method=JDCT_DEFAULT; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set DCT method DEFAULT"); + } else if (LocaleCompare(value,"FASTEST") == 0) - jpeg_info.dct_method=JDCT_FASTEST; + { + jpeg_info.dct_method=JDCT_FASTEST; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Set DCT method FASTEST"); + } } } @@ -3113,9 +3151,19 @@ if ((value=AccessDefinition(image_info,"jpeg","arithmetic-coding"))) { if (LocaleCompare(value,"FALSE") == 0) - jpeg_info.arith_code = False; + { + jpeg_info.arith_code = False; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Disabled arithmetic coding"); + } else - jpeg_info.arith_code = True; + { + jpeg_info.arith_code = True; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Enabled arithmetic coding"); + } } if (!jpeg_info.arith_code) /* jpeg_info.optimize_coding must not be set to enable arithmetic. */ #endif /* if defined(C_ARITH_CODING_SUPPORTED) */ @@ -3123,9 +3171,19 @@ if ((value=AccessDefinition(image_info,"jpeg","optimize-coding"))) { if (LocaleCompare(value,"FALSE") == 0) - jpeg_info.optimize_coding=MagickFalse; + { + jpeg_info.optimize_coding=MagickFalse; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Disabled optimize coding"); + } else - jpeg_info.optimize_coding=MagickTrue; + { + jpeg_info.optimize_coding=MagickTrue; + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Enabled optimize coding"); + } } else { @@ -3144,7 +3202,7 @@ huffman_memory=0; if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Huffman optimization is %s", + " Huffman optimization is %s", (jpeg_info.optimize_coding ? "enabled" : "disabled")); } } @@ -3164,7 +3222,7 @@ #else if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Interlace: nonprogressive"); + "Interlace: nonprogressive"); #endif if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -3436,7 +3494,9 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), - "Writing %u bit %s samples...", + "Writing %d components, %u bits per component," + " with colorspace %s...", + jpeg_info.input_components, jpeg_info.data_precision, JPEGColorSpaceToString(jpeg_info.in_color_space)); @@ -3493,10 +3553,10 @@ i=0; for (x=0; x < (long) image->columns; x++) { - jpeg_pixels.t.j16[i++] = (J16SAMPLE)(ScaleQuantumToShort(p->red)); - jpeg_pixels.t.j16[i++] = (J16SAMPLE)(ScaleQuantumToShort(p->green)); - jpeg_pixels.t.j16[i++] = (J16SAMPLE)(ScaleQuantumToShort(p->blue)); - jpeg_pixels.t.j16[i++] = (J16SAMPLE)(ScaleQuantumToShort(p->opacity)); + jpeg_pixels.t.j16[i++] = (J16SAMPLE)(65535U-ScaleQuantumToShort(p->red)); + jpeg_pixels.t.j16[i++] = (J16SAMPLE)(65535U-ScaleQuantumToShort(p->green)); + jpeg_pixels.t.j16[i++] = (J16SAMPLE)(65535U-ScaleQuantumToShort(p->blue)); + jpeg_pixels.t.j16[i++] = (J16SAMPLE)(65535U-ScaleQuantumToShort(p->opacity)); p++; } } /* End deep JCS_CMYK */ @@ -3553,10 +3613,10 @@ i=0; for (x=0; x < (long) image->columns; x++) { - jpeg_pixels.t.j12[i++] = (J12SAMPLE)(ScaleQuantumToShort(p->red)/16); - jpeg_pixels.t.j12[i++] = (J12SAMPLE)(ScaleQuantumToShort(p->green)/16); - jpeg_pixels.t.j12[i++] = (J12SAMPLE)(ScaleQuantumToShort(p->blue)/16); - jpeg_pixels.t.j12[i++] = (J12SAMPLE)(ScaleQuantumToShort(p->opacity)/16); + jpeg_pixels.t.j12[i++] = (J12SAMPLE)(4095U-ScaleQuantumToShort(p->red)/16); + jpeg_pixels.t.j12[i++] = (J12SAMPLE)(4095U-ScaleQuantumToShort(p->green)/16); + jpeg_pixels.t.j12[i++] = (J12SAMPLE)(4095U-ScaleQuantumToShort(p->blue)/16); + jpeg_pixels.t.j12[i++] = (J12SAMPLE)(4095U-ScaleQuantumToShort(p->opacity)/16); p++; } } /* End deep JCS_CMYK */ @@ -3570,7 +3630,7 @@ scanline[1]; if (jpeg_info.in_color_space == JCS_GRAYSCALE) - { /* Start deep JCS_GRAYSCALE */ + { /* Start traditional JCS_GRAYSCALE */ if (image->is_grayscale) { i=0; @@ -3589,10 +3649,10 @@ p++; } } - } /* End deep JCS_GRAYSCALE */ + } /* End traditional JCS_GRAYSCALE */ else if ((jpeg_info.in_color_space == JCS_RGB) || (jpeg_info.in_color_space == JCS_YCbCr)) - { /* Start deep JCS_RGB || JCS_YCbCr */ + { /* Start traditional JCS_RGB || JCS_YCbCr */ i=0; for (x=0; x < (long) image->columns; x++) { @@ -3601,19 +3661,19 @@ jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(p->blue)); p++; } - } /* End deep JCS_RGB || JCS_YCbCr */ + } /* End traditional JCS_RGB || JCS_YCbCr */ else if (jpeg_info.in_color_space == JCS_CMYK) - { /* Start deep JCS_CMYK */ + { /* Start traditional JCS_CMYK */ i=0; for (x=0; x < (long) image->columns; x++) { - jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(p->red)); - jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(p->green)); - jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(p->blue)); - jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(p->opacity)); + jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(MaxRGB-p->red)); + jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(MaxRGB-p->green)); + jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(MaxRGB-p->blue)); + jpeg_pixels.t.j[i++]=(JSAMPLE)(ScaleQuantumToChar(MaxRGB-p->opacity)); p++; } - } /* End deep JCS_CMYK */ + } /* End traditional JCS_CMYK */ scanline[0]=(JSAMPROW) jpeg_pixels.t.j; (void) jpeg_write_scanlines(&jpeg_info,scanline,1); diff -r e5d4aab85dc2 -r 5165261111c1 magick/version.h --- a/magick/version.h Mon Jan 06 10:43:14 2025 -0600 +++ b/magick/version.h Wed Jan 15 10:39:15 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250106" -#define MagickReleaseDate "snapshot-20250106" +#define MagickChangeDate "20250115" +#define MagickReleaseDate "snapshot-20250115" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r e5d4aab85dc2 -r 5165261111c1 www/ChangeLog.html --- a/www/ChangeLog.html Mon Jan 06 10:43:14 2025 -0600 +++ b/www/ChangeLog.html Wed Jan 15 10:39:15 2025 -0600 @@ -38,15 +38,25 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-01-15 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>NEWS.txt: Update the news.</p></li> +<li><p>coders/jpeg.c (WriteJPEGImage): Properly invert CMYK components +when writing. Addresses SourceForge bug #751 "all CMYK colorspace +image become black-white inverted". This bug was introduced in +GraphicsMagick 1.3.43. Existing files which appear "corrupt" due +to this issue may be salvaged by using the -negate command like +"gm convert bad-cmyk.jpg -negate good-cmyk.jpg".</p></li> +<li><p>www/INSTALL-unix.rst: Document the Docutils version necessary to +format reStructuredText files to HTML format.</p></li> +</ul> +</blockquote> <p>2025-01-06 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>www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Use -$(abs_top_srcdir) rather than $(top_srcdir) for the --include-rst -argument when invoking format_c_api_doc.py to assure correct -function if the build tree was configured using a relative path to -the source directory, and the current working directory is -changed.</p></li> +<li><p>www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Pass an +absolute path to format_c_api_doc.py --include-rst argument.</p></li> <li><p>magick/magick_endian.c (MagickReverseBits): Function has never been used for anything. Mark it as deprecated. MagickGetBitRevTable(): Function has never been used for anything. diff -r e5d4aab85dc2 -r 5165261111c1 www/INSTALL-unix.html --- a/www/INSTALL-unix.html Mon Jan 06 10:43:14 2025 -0600 +++ b/www/INSTALL-unix.html Wed Jan 15 10:39:15 2025 -0600 @@ -261,8 +261,10 @@ </dd> <dt><kbd><span class="option">--enable-maintainer-mode</span></kbd></dt> <dd><p>enable additional Makefile rules which update generated files -included in the distribution. Requires GNU make as well as a -number of utilities and tools.</p> +included in the distribution. Requires GNU make, Python 3, as well +as a number of common development utilities and tools. Python 3 +Docutils (0.17.1 or later) are required to format ".rst" +reStructuredText files to HTML format.</p> </dd> <dt><kbd><span class="option">--enable-quantum-library-names</span></kbd></dt> <dd><p>shared library name includes quantum depth to allow shared @@ -920,8 +922,10 @@ <pre class="literal-block">dcraw, fonts-urw-base35, ghostscript, hp2xx, ttf-mscorefonts-installer</pre> <p>These additional packages are useful in order to maintain -GraphicsMagick itself:</p> -<pre class="literal-block">autoconf, automake, graphviz, libtool, docutils-common, python, m4</pre> +GraphicsMagick itself (see the <span class="docutils literal"><span class="pre">--enable-maintainer-mode</span></span> configure +option):</p> +<pre class="literal-block">autoconf, automake, graphviz, libtool, python3-docutils, +docutils-common, python3, m4</pre> </section> </section> <section id="building-under-cygwin"> diff -r e5d4aab85dc2 -r 5165261111c1 www/INSTALL-unix.rst --- a/www/INSTALL-unix.rst Mon Jan 06 10:43:14 2025 -0600 +++ b/www/INSTALL-unix.rst Wed Jan 15 10:39:15 2025 -0600 @@ -245,8 +245,10 @@ --enable-maintainer-mode enable additional Makefile rules which update generated files - included in the distribution. Requires GNU make as well as a - number of utilities and tools. + included in the distribution. Requires GNU make, Python 3, as well + as a number of common development utilities and tools. Python 3 + Docutils (0.17.1 or later) are required to format ".rst" + reStructuredText files to HTML format. --enable-quantum-library-names @@ -898,9 +900,11 @@ ttf-mscorefonts-installer These additional packages are useful in order to maintain -GraphicsMagick itself:: +GraphicsMagick itself (see the ``--enable-maintainer-mode`` configure +option):: - autoconf, automake, graphviz, libtool, docutils-common, python, m4 + autoconf, automake, graphviz, libtool, python3-docutils, + docutils-common, python3, m4 Building under Cygwin diff -r e5d4aab85dc2 -r 5165261111c1 www/Makefile.am --- a/www/Makefile.am Mon Jan 06 10:43:14 2025 -0600 +++ b/www/Makefile.am Wed Jan 15 10:39:15 2025 -0600 @@ -249,7 +249,7 @@ $(WWWDIR)/utilities.html\ $(WWWDIR)/wand/wand.html -WWWW_EXTRA_DIST=$(WWW_HTML_FILES) $(WWW_RST_FILES) +WWW_EXTRA_DIST=$(WWW_HTML_FILES) $(WWW_RST_FILES) WWW_MAINTAINER_TARGETS=$(WWW_HTML_FILES) $(WWWDIR)/color.html diff -r e5d4aab85dc2 -r 5165261111c1 www/NEWS.html --- a/www/NEWS.html Mon Jan 06 10:43:14 2025 -0600 +++ b/www/NEWS.html Wed Jan 15 10:39:15 2025 -0600 @@ -41,7 +41,7 @@ <!-- -*- mode: rst -*- --> <!-- This text is in reStucturedText format, so it may look a bit odd. --> <!-- See http://docutils.sourceforge.net/rst.html for details. --> -<p>This file was last updated to reflect changes up to January 4, 2025.</p> +<p>This file was last updated to reflect changes up to January 15, 2025.</p> <p>Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the ChangeLog file, and/or the Mercurial changesets, for full details.</p> @@ -125,6 +125,8 @@ <li><p>BMP: Assure that the opacity channel is initialized, even if the image is indicated to be opaque. This avoids issues with code which assumes that the opacity channel is always initialized.</p></li> +<li><p>JPEG: Since GraphicsMagick 1.3.43, CMYK JPEG has been writing +inverted. This bug is now fixed.</p></li> <li><p>TclMagick: The TclMagick build uses the latest TEA tcl.m4 macros, while modernizing the Automake and Autoconf files. Many defects in the C code are corrected. The libttkcommon "shim" library, |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-06 16:44:05
|
changeset e5d4aab85dc2 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=e5d4aab85dc2 summary: www/wand/Makefile.am: Pass an absolute path to format_c_api_doc.py --include-rst argument. diffstat: ChangeLog | 3 +++ Makefile.in | 2 +- www/ChangeLog.html | 6 ++++++ www/wand/Makefile.am | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diffs (52 lines): diff -r 2e8f11637087 -r e5d4aab85dc2 ChangeLog --- a/ChangeLog Mon Jan 06 10:13:51 2025 -0600 +++ b/ChangeLog Mon Jan 06 10:43:14 2025 -0600 @@ -1,5 +1,8 @@ 2025-01-06 Bob Friesenhahn <bfr...@si...> + * www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Pass an + absolute path to format_c_api_doc.py --include-rst argument. + * magick/magick_endian.c (MagickReverseBits): Function has never been used for anything. Mark it as deprecated. MagickGetBitRevTable(): Function has never been used for anything. diff -r 2e8f11637087 -r e5d4aab85dc2 Makefile.in --- a/Makefile.in Mon Jan 06 10:13:51 2025 -0600 +++ b/Makefile.in Mon Jan 06 10:43:14 2025 -0600 @@ -11350,7 +11350,7 @@ @HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@$(WWWWANDAPIDIR)/%.apirst : $(top_srcdir)/wand/%.c @HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@ @printf "Updating $@ ...\n" -@HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@ $(FORMATCAPI) --whatis-file $(APIWHATIS) --include-rst $(top_srcdir)/www/api/api_hyperlinks.rst $< $@ +@HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@ $(FORMATCAPI) --whatis-file $(APIWHATIS) --include-rst $(abs_top_srcdir)/www/api/api_hyperlinks.rst $< $@ @HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@$(WWWWANDAPIDIR)/%.html : $(WWWWANDAPIDIR)/%.apirst @HasRST2HTML_TRUE@@MAINTAINER_MODE_TRUE@ @printf "Updating $@ ...\n" diff -r 2e8f11637087 -r e5d4aab85dc2 www/ChangeLog.html --- a/www/ChangeLog.html Mon Jan 06 10:13:51 2025 -0600 +++ b/www/ChangeLog.html Mon Jan 06 10:43:14 2025 -0600 @@ -41,6 +41,12 @@ <p>2025-01-06 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>www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Use +$(abs_top_srcdir) rather than $(top_srcdir) for the --include-rst +argument when invoking format_c_api_doc.py to assure correct +function if the build tree was configured using a relative path to +the source directory, and the current working directory is +changed.</p></li> <li><p>magick/magick_endian.c (MagickReverseBits): Function has never been used for anything. Mark it as deprecated. MagickGetBitRevTable(): Function has never been used for anything. diff -r 2e8f11637087 -r e5d4aab85dc2 www/wand/Makefile.am --- a/www/wand/Makefile.am Mon Jan 06 10:13:51 2025 -0600 +++ b/www/wand/Makefile.am Mon Jan 06 10:43:14 2025 -0600 @@ -45,7 +45,7 @@ $(WWWWANDAPIDIR)/%.apirst : $(top_srcdir)/wand/%.c @printf "Updating $@ ...\n" - $(FORMATCAPI) --whatis-file $(APIWHATIS) --include-rst $(top_srcdir)/www/api/api_hyperlinks.rst $< $@ + $(FORMATCAPI) --whatis-file $(APIWHATIS) --include-rst $(abs_top_srcdir)/www/api/api_hyperlinks.rst $< $@ $(WWWWANDAPIDIR)/%.html : $(WWWWANDAPIDIR)/%.apirst @printf "Updating $@ ...\n" |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-06 16:16:40
|
changeset 2e8f11637087 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=2e8f11637087 summary: magick/magick_endian.c: Strip out the MagickReverseBits() and MagickGetBitRevTable() implementations. diffstat: magick/magick_endian.c | 99 ++----------------------------------------------- 1 files changed, 5 insertions(+), 94 deletions(-) diffs (116 lines): diff -r 937bdb232bb9 -r 2e8f11637087 magick/magick_endian.c --- a/magick/magick_endian.c Mon Jan 06 08:31:49 2025 -0600 +++ b/magick/magick_endian.c Mon Jan 06 10:13:51 2025 -0600 @@ -108,107 +108,18 @@ /* FIXME: Nothing in GraphicsMagick is using MagickReverseBits() or - MagickGetBitRevTable() so they should be removed. + MagickGetBitRevTable() so they should be entirely removed. */ - -/* - * Bit reversal tables. MagickBitRevTable[<byte>] gives - * the bit reversed value of <byte>. Used in various - * places in the library when the FillOrder requires - * bit reversal of byte values (e.g. CCITT Fax 3 - * encoding/decoding). MagickNoBitRevTable is provided - * for algorithms that want an equivalent table that - * do not reverse bit values. - */ -static const unsigned char MagickBitRevTable[256] = { - 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, - 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, - 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, - 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, - 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, - 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, - 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, - 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, - 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, - 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, - 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, - 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, - 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, - 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, - 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, - 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, - 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, - 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, - 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, - 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, - 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, - 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, - 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, - 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, - 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, - 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, - 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, - 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, - 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, - 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, - 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, - 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff -}; -static const unsigned char MagickNoBitRevTable[256] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, -}; - MagickExport const unsigned char* MagickGetBitRevTable(int reversed) { - return (reversed ? MagickBitRevTable : MagickNoBitRevTable); + (void) reversed; + return (const unsigned char*) NULL; } MagickExport void MagickReverseBits(register unsigned char* cp, register size_t n) { - for (; n > 8; n -= 8) { - cp[0] = MagickBitRevTable[cp[0]]; - cp[1] = MagickBitRevTable[cp[1]]; - cp[2] = MagickBitRevTable[cp[2]]; - cp[3] = MagickBitRevTable[cp[3]]; - cp[4] = MagickBitRevTable[cp[4]]; - cp[5] = MagickBitRevTable[cp[5]]; - cp[6] = MagickBitRevTable[cp[6]]; - cp[7] = MagickBitRevTable[cp[7]]; - cp += 8; - } - while (n-- > 0) - *cp = MagickBitRevTable[*cp], cp++; + (void) cp; + (void) n; } |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-06 14:34:06
|
changeset 937bdb232bb9 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=937bdb232bb9 summary: Mark MagickReverseBits() and MagickGetBitRevTable() as deprecated since they have never been used. diffstat: ChangeLog | 7 +++++++ VisualMagick/installer/inc/version.isx | 4 ++-- magick/magick_endian.c | 5 +++++ magick/magick_endian.h | 4 ++-- magick/version.h | 4 ++-- www/ChangeLog.html | 9 +++++++++ 6 files changed, 27 insertions(+), 6 deletions(-) diffs (94 lines): diff -r a8073af22ef5 -r 937bdb232bb9 ChangeLog --- a/ChangeLog Sat Jan 04 09:56:09 2025 -0600 +++ b/ChangeLog Mon Jan 06 08:31:49 2025 -0600 @@ -1,3 +1,10 @@ +2025-01-06 Bob Friesenhahn <bfr...@si...> + + * magick/magick_endian.c (MagickReverseBits): Function has never + been used for anything. Mark it as deprecated. + MagickGetBitRevTable(): Function has never been used for anything. + Mark it as deprecated. + 2025-01-04 Bob Friesenhahn <bfr...@si...> * NEWS.txt: Update the news. diff -r a8073af22ef5 -r 937bdb232bb9 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sat Jan 04 09:56:09 2025 -0600 +++ b/VisualMagick/installer/inc/version.isx Mon Jan 06 08:31:49 2025 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020250104" -#define public MagickPackageReleaseDate "snapshot-20250104" +#define public MagickPackageVersionAddendum ".020250106" +#define public MagickPackageReleaseDate "snapshot-20250106" diff -r a8073af22ef5 -r 937bdb232bb9 magick/magick_endian.c --- a/magick/magick_endian.c Sat Jan 04 09:56:09 2025 -0600 +++ b/magick/magick_endian.c Mon Jan 06 08:31:49 2025 -0600 @@ -107,6 +107,11 @@ } /* + FIXME: Nothing in GraphicsMagick is using MagickReverseBits() or + MagickGetBitRevTable() so they should be removed. +*/ + +/* * Bit reversal tables. MagickBitRevTable[<byte>] gives * the bit reversed value of <byte>. Used in various * places in the library when the FillOrder requires diff -r a8073af22ef5 -r 937bdb232bb9 magick/magick_endian.h --- a/magick/magick_endian.h Sat Jan 04 09:56:09 2025 -0600 +++ b/magick/magick_endian.h Mon Jan 06 08:31:49 2025 -0600 @@ -8,7 +8,7 @@ Word-swapping functions. */ extern MagickExport void - MagickReverseBits(unsigned char *cp, size_t n), + MagickReverseBits(unsigned char *cp, size_t n) MAGICK_FUNC_DEPRECATED, MagickSwabArrayOfDouble(double *dp, size_t n), MagickSwabArrayOfFloat(float *fp, size_t n), MagickSwabArrayOfUInt16(magick_uint16_t *wp, size_t n), @@ -19,7 +19,7 @@ MagickSwabUInt32(magick_uint32_t *lp); extern MagickExport const unsigned char - *MagickGetBitRevTable(int) MAGICK_FUNC_CONST; + *MagickGetBitRevTable(int) MAGICK_FUNC_CONST MAGICK_FUNC_DEPRECATED; /* * Local Variables: diff -r a8073af22ef5 -r 937bdb232bb9 magick/version.h --- a/magick/version.h Sat Jan 04 09:56:09 2025 -0600 +++ b/magick/version.h Mon Jan 06 08:31:49 2025 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20250104" -#define MagickReleaseDate "snapshot-20250104" +#define MagickChangeDate "20250106" +#define MagickReleaseDate "snapshot-20250106" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r a8073af22ef5 -r 937bdb232bb9 www/ChangeLog.html --- a/www/ChangeLog.html Sat Jan 04 09:56:09 2025 -0600 +++ b/www/ChangeLog.html Mon Jan 06 08:31:49 2025 -0600 @@ -38,6 +38,15 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2025-01-06 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>magick/magick_endian.c (MagickReverseBits): Function has never +been used for anything. Mark it as deprecated. +MagickGetBitRevTable(): Function has never been used for anything. +Mark it as deprecated.</p></li> +</ul> +</blockquote> <p>2025-01-04 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-04 15:58:22
|
changeset a8073af22ef5 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=a8073af22ef5 summary: Update the news diffstat: ChangeLog | 2 ++ NEWS.txt | 23 +++++++++++++++++++---- www/ChangeLog.html | 1 + www/NEWS.html | 21 ++++++++++++++++----- 4 files changed, 38 insertions(+), 9 deletions(-) diffs (158 lines): diff -r f1e61fdfa686 -r a8073af22ef5 ChangeLog --- a/ChangeLog Sat Jan 04 09:22:13 2025 -0600 +++ b/ChangeLog Sat Jan 04 09:56:09 2025 -0600 @@ -1,3 +1,5 @@ 2025-01-04 Bob Friesenhahn <bfr...@si...> + * NEWS.txt: Update the news. + * Update copyright year and rotate ChangeLog. diff -r f1e61fdfa686 -r a8073af22ef5 NEWS.txt --- a/NEWS.txt Sat Jan 04 09:22:13 2025 -0600 +++ b/NEWS.txt Sat Jan 04 09:56:09 2025 -0600 @@ -6,7 +6,7 @@ GraphicsMagick News =================== -This file was last updated to reflect changes up to November 24, 2024. +This file was last updated to reflect changes up to January 4, 2025. Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the @@ -19,16 +19,16 @@ .. contents:: :local: -1.3.46 (???? ??, 2024) +1.3.46 (???? ??, 2025) =========================== Special Issues: * GraphicsMagick needs some additional productive volunteers. For several years now, the burden has entirely been on me (Bob - Friesenhahn). I have been sheparding the project for 22 years + Friesenhahn). I have been sheparding the project for 23 years already (and contributed to ImageMagick and GraphicsMagick combined - for 28 years already). Volunteers are needed to add/improve + for 29 years already). Volunteers are needed to add/improve new/existing file format support, and to assure correct operation on all targets. @@ -36,6 +36,9 @@ * JXL: Apply image dimension resource limits. +* WPG: Assure that the palette buffer is allocated and the current + size (SourceForge bug #750). + Bug fixes: * BMP: Assure that the opacity channel is initialized, even if the @@ -65,6 +68,9 @@ transition", https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019717. +* Support XML predefined entities when reading delegates.mgk so that + it may be expressed in valid XML. + API Updates: * Magick++: Added InitializeMagickSentinel helper class, which @@ -85,6 +91,15 @@ * Test and demo programs are added to Coverity analysis. This necessitated fixing test/demo code to use "secure" buffer handling. +* Build the software differently for the oss-fuzz build so that + features not useful, or harmful to, oss-fuzz testing are + removed. This is indicated when + FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined. + +* The oss-fuzz build script (fuzzing/oss-fuzz-build.sh) is + subtantially updated to build a fully-featured libheif, with a set + of common libraries it depends on. + 1.3.45 (August 27, 2024) =========================== diff -r f1e61fdfa686 -r a8073af22ef5 www/ChangeLog.html --- a/www/ChangeLog.html Sat Jan 04 09:22:13 2025 -0600 +++ b/www/ChangeLog.html Sat Jan 04 09:56:09 2025 -0600 @@ -41,6 +41,7 @@ <p>2025-01-04 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>NEWS.txt: Update the news.</p></li> <li><p>Update copyright year and rotate ChangeLog.</p></li> </ul> </blockquote> diff -r f1e61fdfa686 -r a8073af22ef5 www/NEWS.html --- a/www/NEWS.html Sat Jan 04 09:22:13 2025 -0600 +++ b/www/NEWS.html Sat Jan 04 09:56:09 2025 -0600 @@ -41,7 +41,7 @@ <!-- -*- mode: rst -*- --> <!-- This text is in reStucturedText format, so it may look a bit odd. --> <!-- See http://docutils.sourceforge.net/rst.html for details. --> -<p>This file was last updated to reflect changes up to November 24, 2024.</p> +<p>This file was last updated to reflect changes up to January 4, 2025.</p> <p>Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the ChangeLog file, and/or the Mercurial changesets, for full details.</p> @@ -50,7 +50,7 @@ release and not attempt to patch older releases.</p> <div class="contents local topic" id="contents"> <ul class="simple"> -<li><p><a class="reference internal" href="#id1" id="id3">1.3.46 (???? ??, 2024)</a></p></li> +<li><p><a class="reference internal" href="#id1" id="id3">1.3.46 (???? ??, 2025)</a></p></li> <li><p><a class="reference internal" href="#august-27-2024" id="id4">1.3.45 (August 27, 2024)</a></p></li> <li><p><a class="reference internal" href="#august-18-2024" id="id5">1.3.44 (August 18, 2024)</a></p></li> <li><p><a class="reference internal" href="#march-23-2024" id="id6">1.3.43 (March 23, 2024)</a></p></li> @@ -103,20 +103,22 @@ </ul> </div> <section id="id1"> -<h1><a class="toc-backref" href="#id3">1.3.46 (???? ??, 2024)</a></h1> +<h1><a class="toc-backref" href="#id3">1.3.46 (???? ??, 2025)</a></h1> <p>Special Issues:</p> <ul class="simple"> <li><p>GraphicsMagick needs some additional productive volunteers. For several years now, the burden has entirely been on me (Bob -Friesenhahn). I have been sheparding the project for 22 years +Friesenhahn). I have been sheparding the project for 23 years already (and contributed to ImageMagick and GraphicsMagick combined -for 28 years already). Volunteers are needed to add/improve +for 29 years already). Volunteers are needed to add/improve new/existing file format support, and to assure correct operation on all targets.</p></li> </ul> <p>Security Fixes:</p> <ul class="simple"> <li><p>JXL: Apply image dimension resource limits.</p></li> +<li><p>WPG: Assure that the palette buffer is allocated and the current +size (SourceForge bug #750).</p></li> </ul> <p>Bug fixes:</p> <ul class="simple"> @@ -143,6 +145,8 @@ Debian bug 1019717 "Display of an SVG file broken due to gsfonts transition", <a class="reference external" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019717">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019717</a>.</p></li> +<li><p>Support XML predefined entities when reading delegates.mgk so that +it may be expressed in valid XML.</p></li> </ul> <p>API Updates:</p> <ul class="simple"> @@ -162,6 +166,13 @@ <li><p>Update Libtool to version 2.5.4.</p></li> <li><p>Test and demo programs are added to Coverity analysis. This necessitated fixing test/demo code to use "secure" buffer handling.</p></li> +<li><p>Build the software differently for the oss-fuzz build so that +features not useful, or harmful to, oss-fuzz testing are +removed. This is indicated when +FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined.</p></li> +<li><p>The oss-fuzz build script (fuzzing/oss-fuzz-build.sh) is +subtantially updated to build a fully-featured libheif, with a set +of common libraries it depends on.</p></li> </ul> </section> <section id="august-27-2024"> |
|
From: GraphicsMagick C. <gra...@li...> - 2025-01-04 15:25:00
|
changeset f1e61fdfa686 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=f1e61fdfa686 summary: Update copyright year and rotate ChangeLog diffstat: ChangeLog | 1211 +--------------------------- ChangeLog.2024 | 1210 +++++++++++++++++++++++++++ Copyright.txt | 2 +- Magick++/COPYING | 2 +- Makefile.in | 8 +- PerlMagick/Magick.pm | 2 +- PerlMagick/Magick.pm.in | 2 +- PerlMagick/Makefile.PL | 2 +- PerlMagick/README.txt | 4 +- VisualMagick/installer/inc/version.isx | 4 +- doc/copyright.imdoc | 2 +- doc/gmdoc2html | 2 +- magick/version.h | 8 +- magick/version.h.in | 4 +- scripts/html_fragments.py | 2 +- utilities/gm.1 | 2 +- www/ChangeLog-2001.html | 2 +- www/ChangeLog-2002.html | 2 +- www/ChangeLog-2003.html | 2 +- www/ChangeLog-2004.html | 2 +- www/ChangeLog-2005.html | 2 +- www/ChangeLog-2006.html | 2 +- www/ChangeLog-2007.html | 2 +- www/ChangeLog-2008.html | 2 +- www/ChangeLog-2009.html | 2 +- www/ChangeLog-2010.html | 2 +- www/ChangeLog-2011.html | 2 +- www/ChangeLog-2012.html | 2 +- www/ChangeLog-2013.html | 2 +- www/ChangeLog-2014.html | 2 +- www/ChangeLog-2015.html | 2 +- www/ChangeLog-2016.html | 2 +- www/ChangeLog-2017.html | 2 +- www/ChangeLog-2018.html | 2 +- www/ChangeLog-2019.html | 2 +- www/ChangeLog-2020.html | 2 +- www/ChangeLog-2021.html | 2 +- www/ChangeLog-2022.html | 2 +- www/ChangeLog-2023.html | 2 +- www/ChangeLog-2024.html | 1429 ++++++++++++++++++++++++++++++++ www/ChangeLog.html | 1378 +------------------------------ www/Changes.html | 5 +- www/Changes.rst | 5 +- www/Copyright.html | 4 +- www/FAQ.html | 2 +- www/GraphicsMagick.html | 4 +- www/Hg.html | 2 +- www/INSTALL-unix.html | 2 +- www/INSTALL-windows.html | 2 +- www/ImageMagickObject.html | 2 +- www/Magick++/Blob.html | 2 +- www/Magick++/ChangeLog.html | 2 +- www/Magick++/CoderInfo.html | 2 +- www/Magick++/Color.html | 2 +- www/Magick++/Drawable.html | 2 +- www/Magick++/Enumerations.html | 2 +- www/Magick++/Exception.html | 2 +- www/Magick++/FormatCharacters.html | 2 +- www/Magick++/Geometry.html | 2 +- www/Magick++/Image.html | 2 +- www/Magick++/ImageDesign.html | 2 +- www/Magick++/Montage.html | 2 +- www/Magick++/PixelPacket.html | 2 +- www/Magick++/Pixels.html | 2 +- www/Magick++/TypeMetric.html | 2 +- www/Magick++/index.html | 2 +- www/Makefile.am | 8 +- www/NEWS.html | 2 +- www/OpenMP.html | 2 +- www/README.html | 2 +- www/api/animate.html | 2 +- www/api/annotate.html | 2 +- www/api/api.html | 2 +- www/api/attribute.html | 2 +- www/api/average.html | 2 +- www/api/blob.html | 2 +- www/api/cdl.html | 2 +- www/api/channel.html | 2 +- www/api/color.html | 2 +- www/api/colormap.html | 2 +- www/api/compare.html | 2 +- www/api/composite.html | 2 +- www/api/confirm_access.html | 2 +- www/api/constitute.html | 2 +- www/api/decorate.html | 2 +- www/api/deprecate.html | 2 +- www/api/describe.html | 2 +- www/api/display.html | 2 +- www/api/draw.html | 2 +- www/api/effect.html | 2 +- www/api/enhance.html | 2 +- www/api/error.html | 2 +- www/api/export.html | 2 +- www/api/fx.html | 2 +- www/api/hclut.html | 2 +- www/api/image.html | 2 +- www/api/import.html | 2 +- www/api/list.html | 2 +- www/api/log.html | 2 +- www/api/magick.html | 2 +- www/api/memory.html | 2 +- www/api/monitor.html | 2 +- www/api/montage.html | 2 +- www/api/operator.html | 2 +- www/api/paint.html | 2 +- www/api/pixel_cache.html | 2 +- www/api/pixel_iterator.html | 2 +- www/api/plasma.html | 2 +- www/api/profile.html | 2 +- www/api/quantize.html | 2 +- www/api/registry.html | 2 +- www/api/render.html | 2 +- www/api/resize.html | 2 +- www/api/resource.html | 2 +- www/api/segment.html | 2 +- www/api/shear.html | 2 +- www/api/signature.html | 2 +- www/api/statistics.html | 2 +- www/api/texture.html | 2 +- www/api/transform.html | 2 +- www/api/types.html | 2 +- www/api/widget.html | 2 +- www/authors.html | 2 +- www/benchmarks.html | 2 +- www/bugs.html | 2 +- www/contribute.html | 2 +- www/download.html | 2 +- www/formats.html | 2 +- www/index.html | 2 +- www/links.html | 2 +- www/miff.html | 2 +- www/mission.html | 2 +- www/motion-picture.html | 2 +- www/perl.html | 2 +- www/process.html | 2 +- www/programming.html | 2 +- www/project.html | 2 +- www/quantize.html | 2 +- www/reference.html | 2 +- www/security.html | 2 +- www/thanks.html | 2 +- www/tools.html | 2 +- www/utilities.html | 2 +- www/wand/drawing_wand.html | 2 +- www/wand/magick_wand.html | 2 +- www/wand/pixel_wand.html | 2 +- www/wand/wand.html | 2 +- 147 files changed, 2812 insertions(+), 2736 deletions(-) diffs (truncated from 7076 to 500 lines): diff -r 5130d75a290e -r f1e61fdfa686 ChangeLog --- a/ChangeLog Thu Dec 19 13:35:31 2024 -0600 +++ b/ChangeLog Sat Jan 04 09:22:13 2025 -0600 @@ -1,1210 +1,3 @@ -2024-12-19 Bob Friesenhahn <bfr...@si...> - - * coders/wpg.c (ReadWPGImage): Assure that palette buffer is - allocated and the current size. Addresses SourceForge bug #750 - "heap-buffer-overflow in ReadBlob". - Reformat white-space to be more similar to conventions used in - the rest of the software. - -2024-12-16 Bob Friesenhahn <bfr...@si...> - - * config/delegates.mgk.in: Use XML predefined entities - substitutions for '&' and '<' so that the file syntax is valid - XML. Older/existing files using "invalid" XML continue to be - accepted. - - * magick/delegate.c (ReadConfigureFile): Support XML predefined - entities substitutions. - - * magick/utility.c (SubstituteString): Fix off-by-one error which - caused back-to-back substitions to not work correctly. - -2024-12-05 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Remove duplicate request. - - * coders/heif.c (ReadHEIFImage): Trace the top level number of - images. - - * fuzzing/README.txt: Add notes about building libheif - dependencies. - -2024-12-01 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Enable 'uncompressed' in libheif - build. - - * fuzzing/dictionaries/HEIF.dict: Add HEIF dictionary. From - libheif fuzzing/data/dictionary.txt. - -2024-11-29 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Add openh264 and openjpeg for use by - libheif. - - * magick/static.c (StaticModules): Skip registration of CMYK - static module, which is not not useful for oss-fuzz build when - FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined. CMYK, RGB, - and GRAY raw format coders require that image dimensions+depth are - specified, or else they immediately return an error. This defeats - fuzzing given the current fuzzing driver. - -2024-11-28 Bob Friesenhahn <bfr...@si...> - - * magick/static.c (StaticModules): Skip registration of static - modules which are not useful for oss-fuzz build when - FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined. - - * coders/dib.c (RegisterDIBImage): Admit to supporting a "DIB" - format in oss-fuzz build so it will be tested by oss-fuzz. DIB is - normally hidden from the user given that it is normally an - embedded blob in legacy formats like WMF. - -2024-11-24 Bob Friesenhahn <bfr...@si...> - - * NEWS.txt: Update the news. - -2024-11-22 Bob Friesenhahn <bfr...@si...> - - * config/ltmain.sh, m4/libtool.m4, m4/ltversion.m4: Update to - libtool 2.5.4. - - * Magick++/demo/analyze.cpp: Analyze module identifies as - "Analyze", not "analyze". It seems that symbol resolution must - have allowed mixed-case, but this is not supported any more under - Ubuntu 22.04 LTS. - -2024-11-18 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Move libheif build towards the end - since it keeps adding more dependencies. - -2024-11-17 Bob Friesenhahn <bfr...@si...> - - * fuzzing/README.txt: Add more fuzzing notes. - - * fuzzing/oss-fuzz-build.sh: Add a hack so that libx265 installs - x265.pc. - -2024-11-14 Bob Friesenhahn <bfr...@si...> - - * tests/rwfile.c: Fix appending file extension. - - * coders/bmp.c (ReadBMPImage): Assure that opacity channel is - initialized, even if matte is not true. May help regarding - GraphicsMagick discussion thread "Opacity of whole Magick::image - is set to the value 205 after reading a 24-bit-bmp". - - * coders/svg.c (ReadSVGImage): Added comments. - - * magick/render.c (DrawImage): Added comments. - - * tests/rwfile.c: More fixes for GCC warnings. - -2024-11-01 Bob Friesenhahn <bfr...@si...> - - * tests/bitstream.c: Tidy printfs and exit status. - - * tests/bitstream.tap: Add a simple bitstream test to test suite. - -2024-10-31 Bob Friesenhahn <bfr...@si...> - - * magick/render.c (DrawImage): Add more validity checks for color - database lookup requests. - -2024-10-30 Bob Friesenhahn <bfr...@si...> - - * coders/jp2.c (ReadJP2Image): Trace JPEG 2000 component - parameters. - - * fuzzing/oss-fuzz-build.sh: Skip re-bootstrap of GraphicsMagick - since it sometimes fails due to network issues. - (enable_x265): Enable x265 in oss-fuzz build (and re-enable de265, - which was accidentally disabled). - -2024-10-29 Bob Friesenhahn <bfr...@si...> - - * coders/heif.c (ReadMetadata): Address oss-fuzz issue 376100386 - "graphicsmagick:coder_AVIF_fuzzer: Undefined-shift in - ReadMetadata", which is due to an unsigned char being promoted to - a signed int prior to shifting. The sample input file is valid. - - * TclMagick/Makefile.am (EXTRA_DIST): Assure that all source files - are included by 'make dist'. - -2024-10-28 Bob Friesenhahn <bfr...@si...> - - * TclMagick/Makefile.am: Name installed TclMagick/TkMagick - libraries similar to names generated by the TEA tcl.m4 module. - For example, name as TclMagick0.46.so and TkMagick0.46.so. - -2024-10-27 Bob Friesenhahn <bfr...@si...> - - * tests/{constitute.c, rwblob.c, rwfile.c}: Eliminate ugly - "directive output may be truncated" warnings from GCC. - - * tests/bitstream.c: Fixes so that 'test' mode allocates the - correct amount of memory for 31 and 32 bit depth. - - * Makefile.am (coverity): Added tests programs to Coverity - analysis. - (scan-build): Added tests programs to Clang scan-build. - - * Magick++/lib/Image.cpp (Magick::Image::formatExpressionRef): New - method which works the same as formatExpression, except that it - passes the argument by reference. - - * wand/wandtest.c: Use secure buffer management. - - * tests/constitute.c: Use secure buffer management. - - * tests/rwfile.c: Use secure buffer management. - - * tests/rwblob.c: Use secure buffer management. - - * Magick++/lib/Magick++/STL.h (coderInfoList): Assure that - exception is always thrown when 'coder_list' is NULL. Coverity - 446809 "Dereference after null check". - - * Magick++/lib/Exception.cpp (Magick::throwExceptionAlways): New - exception throwing helper function which always throws an - exception. - - * tests/bitstream.c: Check range of arguments. Coverity 446805 - "Untrusted loop bound". - - * Magick++/tests/readWriteImages.cpp (main): Report columns() - rather than rows(). Coverity 446803 "Copy-paste error. - - * Magick++/tests/attributes.cpp: Use new - formatExpressionRef(). Coverity 446808. - - * Magick++/lib/Image.cpp (Magick::Image::formatExpressionRef): New - method to replace use of formatExpression(). The declaration of - formatExpression() should have passed the argument by reference. - Coverity 446808. - -2024-10-24 Bob Friesenhahn <bfr...@si...> - - * Magick++/tests/*: Updated to use InitializeMagickSentinel. - - * Magick++/demo/*: Updated to use InitializeMagickSentinel. - - * Magick++/lib/Magick++/Image.h (InitializeMagickSentinel): Added - InitializeMagickSentinel class, which performs the function of - InitializeMagick() and invokes DestroyMagick() when an object - created based on it goes out of scope. - - * Magick++/lib/Image.cpp: Disable use of 'MagickCleanUp' static - object by default because it may cause race conditions - - * fuzzing/oss-fuzz-build.sh: Set libheif - ENABLE_MULTITHREADING_SUPPORT back to on. - -2024-10-17 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Set libheif - ENABLE_MULTITHREADING_SUPPORT to off to see if it causes an abort - in std::terminate to go away. - -2024-10-03 Bob Friesenhahn <bfr...@si...> - - * magick/gem.c (Hull): More fixes for regression created by - Mercurial changeset 16913:78aa63677935 "Add casts to prevent - unnecessary value truncation in WIN64 build" on Saturday, October - 21, 2023. - - * TclMagick/generic/TclMagickAppInit.c: Refresh implementation - based on latest code from reference tcl/unix/tclAppInit.c. - -2024-10-02 Bob Friesenhahn <bfr...@si...> - - * TclMagick/Makefile.am: Eliminate the libttkcommon "shim" library - which allowed TkMagick to work and use a different approach. - TclMagick is not dependent on libtk. Only TkMagick is dependent - on libtk. - -2024-09-29 Bob Friesenhahn <bfr...@si...> - - * www/links.rst: Update oss-fuzz bug tracker URL. - -2024-09-26 Bob Friesenhahn <bfr...@si...> - - * magick/gem.c (Hull): Fix regression created by Mercurial - changeset 16913:78aa63677935 "Add casts to prevent unnecessary - value truncation in WIN64 build" on Saturday, October 21, 2023. - - * m4, TclMagick/unix/m4: Update to libtool 2.5.3. - -2024-09-24 Bob Friesenhahn <bfr...@si...> - - * TclMagick/Makefile.am: 'make test' does something. Not sure yet - what it should be. - - * TclMagick/tests/test-wand.tcl: Fix memory leak of $img and $seq. - - * TclMagick/tests/test-draw.tcl: Fix memory leak of $img. - - * generic/TclMagickAppInit.c: Add a TclMagick test program. - - * TclMagick/generic/TkMagick.c: Fix memory leak of 'fonts' and - 'formats' lists members. - -2024-09-20 Bob Friesenhahn <bfr...@si...> - - * TclMagick/Makefile.am: Now uses non-recursive build and produces - xz tarball. The make 'distcheck' target is not working properly - yet. - (AM_DISTCHECK_CONFIGURE_FLAGS): Change the argument to - --exec-prefix so that 'make distcheck' now passes. - -2024-09-19 Bob Friesenhahn <bfr...@si...> - - * magick/display.c (MagickXROIImage): ThresholdCommand was missing - from EffectsCommands list. In the Region of Interest mode the - button command array is missing a command corresponding to - "Threshold...", and that is also messing up all buttons further - below. SourceForge patch #82 "Add missing Threshold to command - array of Region of Interest mode" by Alex Barsky. - - * TclMagick/generic/config.h.in, TclMagick/generic/libttkcommon.h: - Support a configuration header. - - * TclMagick/configure.ac: Modernize Autoconf files. - - * TclMagick/Makefile.am: Modernize Automake files. - -2024-09-15 Bob Friesenhahn <bfr...@si...> - - * TclMagick/generic/TclMagick.c: Fix several typos which will - produce wrong results, as well as quieting fallthrough warnings. - -2024-09-14 Bob Friesenhahn <bfr...@si...> - - * config/type-urw-base35-t1.mgk.in: Add a template file for the - newer Artifex urw-base35-fonts, but for the Postscript Type 1 - fonts. This is not integrated into the build and no substitutions - are performed on it. - -2024-09-13 Bob Friesenhahn <bfr...@si...> - - * config/type-urw-base35-otf.mgk.in: Changes for the newer Artifex - urw-base35-fonts, which now support OpenType fonts, and use long - file names. Specifically configure the location using the - --with-urwbase35otf-font-dir configure option. This is in - response to Debian bug 1019717 "Display of an SVG file broken due - to gsfonts transition", - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019717. - -2024-09-12 Bob Friesenhahn <bfr...@si...> - - * configure.ac: Validate legacy Ghostscript font file in - Ghostscript install directory before deciding to use it as the - Ghostscript font directory. - -2024-09-09 Bob Friesenhahn <bfr...@si...> - - * coders/jxl.c (ReadJXLImage): Apply image dimension resource - limits. Addresses oss-fuzz Issue 69728: - "graphicsmagick:coder_TIFF_any_fuzzer: Out-of-memory in - coder_TIFF_any_fuzzer". - -2024-09-07 Bob Friesenhahn <bfr...@si...> - - * doc/options.imdoc: Further updates to color specification - documentation, based on what the current code is - doing. Unfortunately, current behavior deviates from CSS3 in some - aspects. - - * fuzzing/oss-fuzz-build.sh: Libtiff build now requires - autoconf-archive - -2024-09-06 Bob Friesenhahn <bfr...@si...> - - * doc/options.imdoc: Remove mention of RRRRGGGGBBBBAAAA due to an - interpretation conflict which causes it to not be supported. Add - documentation for 32-bit variants. Addresses SourceForge issue - #747 "#RRRGGGBBBAAA and #RRRRGGGGBBBB color names conflict". - -2024-09-02 Bob Friesenhahn <bfr...@si...> - - * TclMagick/: White-space clean-up and consistent indentation. - -2024-09-01 Bob Friesenhahn <bfr...@si...> - - * TclMagick/unix/m4/tcl.m4: Update tcl.m4 to TEA_VERSION 3.10. - The TEA_INSTALLER Autoconf macro oddly does not use the settings - set by AC_CONFIG_AUX_DIR to find install-sh. Instead it - hard-codes $(srcdir)/tclconfig/install-sh. Change that hard-coded - path to $(top_srcdir)/unix/config/install-sh. - - * TclMagick/generic/pkgIndex.tcl: Remove generated file. - - * TclMagick/generic: Regenerate Autotool's generated files with - autoconf 2.71 and automake 1.16.5. - -2024-08-27 Bob Friesenhahn <bfr...@si...> - - * www/index.rst, www/Changes.rst: 1.3.45 is released in 2024. - - * version.sh: Updates in preparation for the 1.3.45 release. - -2024-08-26 Bob Friesenhahn <bfr...@si...> - - * NEWS.txt: Update the news. - -2024-08-24 Bob Friesenhahn <bfr...@si...> - - * coders/fpx.c: Coverity fixes for "dead code" and an integer - overflow issue. - - * magick/image.c (MagickParseSubImageSpecification): Fix - SourceForge issue "#746 Off-by-one-error when converting PDF with - multiple pages". Also add additional sanity checking. - Unfortunately, this is a regression added in the 1.3.44 release. - -2024-08-18 Bob Friesenhahn <bfr...@si...> - - * www/Changes.rst: 1.3.44 is released in 2024. - - * version.sh: Updates in preparation for the 1.3.44 release. - - * magick/symbols.h: Update 'Gm' prefixed symbols. - -2024-08-12 Bob Friesenhahn <bfr...@si...> - - * NEWS.txt: Update the news. - -2024-08-10 Bob Friesenhahn <bfr...@si...> - - * magick/image.c (GetImageInfo): Change the default for ImageInfo - 'progress' to False. This parameter is used by 'animate' and - 'display'. It was discovered that under Ubuntu 22.04 LTS, the - progress indication in 'animate' and 'display' has changed from - almost no cost, to taking vastly more time than the work to be - performed! As a result, there will be no graphical progress - indication in the X11 commands unless this resource is set to - True. ImageMagick had already removed this progress indication. - The -monitor option will cause progress output to stderr. - -2024-08-07 Bob Friesenhahn <bfr...@si...> - - * www/docutils-articles.css: reStructuredText style sheet - adjustments to work with HTML 4 and 5 synax, by Mark Mitchell. - - * www/docutils-api.css: reStructuredText style sheet adjustments - for HTML 5, by Mark Mitchell. - - * tests/rwfile.tap: Adjustments for FlashPIX tests. - - * coders/fpx.c: Add tracing and attempt to reduce the amount of - memory which is leaked by the defective library. - - * coders/hrz.c: Tidy and clarify code. - -2024-08-04 Bob Friesenhahn <bfr...@si...> - - * configure.ac, coders/dps.c: Display Postscript stopped being - available after Sun Solaris 10 (if legacy Xsun was used rather - than Xorg) and has been substantially gone from the world for a - long time already since Oracle stopped supporting desktop systems - not long after acquiring Sun in 2010. Remove support for Display - Postscript. Ghostscript works better since it supports multiple - pages whereas Display Postscript only supported one page. - - * config/{config.guess,config.sub}: Re-bootstrap with latest - config.guess and config.sub. - -2024-08-02 Bob Friesenhahn <bfr...@si...> - - * NEWS.txt: Update the news. - - * www/index.rst (https): Update Coverity statistics. Add mention - of how ImageMagick has now removed classic utilities such as - 'convert'. - - * www/INSTALL-windows.rst: Add a note regarding problems building - UTIL_IMDisplay in some free Visual Studio versions, and how to fix - it. - - * www/contribute.rst: Add another idea for contributing to - GraphicsMagick. - -2024-07-26 Bob Friesenhahn <bfr...@si...> - - * configure.ac: Remove defunct LIB_GS variable. - - * coders/dib.c (ReadDIBImage): Eliminate GCC 14 warning. - - * coders/bmp.c (ReadBMPImage): Eliminate GCC 14 warning. - -2024-07-25 Bob Friesenhahn <bfr...@si...> - - * configure.ac: Add LIB_FPX and LIB_GS back into the LIBS - list. LIB_FPX was commented out long ago, but it seems that LIB_GS - was accidentally dropped within the past year during the big - re-write to depend more on pkg-config. These changes are due to - SourceForge issue #745 "missing fpx library during linking". - -2024-07-22 Bob Friesenhahn <bfr...@si...> - - * magick/blob.c (MagickMaxFileSystemBlockSize): Place an artibrary - limit on maximum filesystem block size. - - * coders/Makefile.am (MAGICK_ORA_MODULES): ORA module is dependent - on HasLIBZIP. - -2024-07-18 Bob Friesenhahn <bfr...@si...> - - * magick/command.c (MogrifyImage): Change utility '-depth N' to a - simple image depth attribute assignment rather than also being an - image processing operation. Obtain the previous result (which - immediately modified the image pixels) using '-operator All Depth - N'. Most users use -depth in order to influence the bits/sample - of the file being written rather than as an intermediate image - processing operation. - - * magick/floats.c (_Gm_convert_fp32_to_fp24): Coverity fixes for - arithmetic overflow in mantissa related code. - -2024-07-14 Bob Friesenhahn <bfr...@si...> - - * fuzzing/oss-fuzz-build.sh: Added support for building libzip. - -2024-07-13 Bob Friesenhahn <bfr...@si...> - - * magick/display.c (MagickXROIImage): Fix clang-analyzer issue. - - * magick/delegate.c (ListDelegateInfo): Fix clang-analyzer issue. - - * magick/command.c (TimeImageCommand): Fix clang-analyzer issue. - -2024-07-09 Bob Friesenhahn <bfr...@si...> - - * magick/image.c (MagickParseSubImageSpecification): Quiet - Coverity 427451 "Overflowed constant". - - * magick/analyze.c (MinimumDepthForValue): Fix loop bounds and - avoid overflow of the return value. Addresses Coverity 427448 - "Overflowed constant". - -2024-07-08 Bob Friesenhahn <bfr...@si...> - - * wand/drawing_wand.c (DrawGetStrokeDashArray): Avoid integer - underflow in loop. Addresses Coverity 427450 "Overflowed - constant." - |
|
From: GraphicsMagick C. <gra...@li...> - 2024-12-19 19:36:31
|
changeset 883ebf8cae6d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=883ebf8cae6d summary: ReadWPGImage(): Assure that palette buffer is allocated and the current size. changeset 831362b618f7 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=831362b618f7 summary: PerlMagick/t/input2_TC1.wpg: Fix accidental file overwrite changeset 5130d75a290e in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=5130d75a290e summary: coders/wpg.c: Reformat white-space to be more similar to conventions used in the rest of the software. diffstat: ChangeLog | 8 + VisualMagick/installer/inc/version.isx | 4 +- coders/wpg.c | 1725 ++++++++++++++++--------------- magick/version.h | 4 +- www/ChangeLog.html | 10 + 5 files changed, 921 insertions(+), 830 deletions(-) diffs (truncated from 2545 to 500 lines): diff -r cf7cd5ebabb0 -r 5130d75a290e ChangeLog --- a/ChangeLog Mon Dec 16 10:50:23 2024 -0600 +++ b/ChangeLog Thu Dec 19 13:35:31 2024 -0600 @@ -1,3 +1,11 @@ +2024-12-19 Bob Friesenhahn <bfr...@si...> + + * coders/wpg.c (ReadWPGImage): Assure that palette buffer is + allocated and the current size. Addresses SourceForge bug #750 + "heap-buffer-overflow in ReadBlob". + Reformat white-space to be more similar to conventions used in + the rest of the software. + 2024-12-16 Bob Friesenhahn <bfr...@si...> * config/delegates.mgk.in: Use XML predefined entities diff -r cf7cd5ebabb0 -r 5130d75a290e VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Mon Dec 16 10:50:23 2024 -0600 +++ b/VisualMagick/installer/inc/version.isx Thu Dec 19 13:35:31 2024 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020241216" -#define public MagickPackageReleaseDate "snapshot-20241216" +#define public MagickPackageVersionAddendum ".020241219" +#define public MagickPackageReleaseDate "snapshot-20241219" diff -r cf7cd5ebabb0 -r 5130d75a290e coders/wpg.c --- a/coders/wpg.c Mon Dec 16 10:50:23 2024 -0600 +++ b/coders/wpg.c Thu Dec 19 13:35:31 2024 -0600 @@ -1,5 +1,5 @@ /* -% Copyright (C) 2003-2023 GraphicsMagick Group +% Copyright (C) 2003-2024 GraphicsMagick Group % Copyright (C) 2002 ImageMagick Studio % % This program is covered by multiple licenses, which are described in @@ -51,157 +51,159 @@ typedef struct - { - unsigned char Red; - unsigned char Blue; - unsigned char Green; - } RGB_Record; +{ + unsigned char Red; + unsigned char Blue; + unsigned char Green; +} RGB_Record; /* Default palette for WPG level 1 */ -static const RGB_Record WPG1_Palette[256]={ -{ 0, 0, 0}, { 0, 0,168}, -{ 0,168, 0}, { 0,168,168}, -{168, 0, 0}, {168, 0,168}, -{168, 84, 0}, {168,168,168}, -{ 84, 84, 84}, { 84, 84,252}, -{ 84,252, 84}, { 84,252,252}, -{252, 84, 84}, {252, 84,252}, -{252,252, 84}, {252,252,252}, /*16*/ -{ 0, 0, 0}, { 20, 20, 20}, -{ 32, 32, 32}, { 44, 44, 44}, -{ 56, 56, 56}, { 68, 68, 68}, -{ 80, 80, 80}, { 96, 96, 96}, -{112,112,112}, {128,128,128}, -{144,144,144}, {160,160,160}, -{180,180,180}, {200,200,200}, -{224,224,224}, {252,252,252}, /*32*/ -{ 0, 0,252}, { 64, 0,252}, -{124, 0,252}, {188, 0,252}, -{252, 0,252}, {252, 0,188}, -{252, 0,124}, {252, 0, 64}, -{252, 0, 0}, {252, 64, 0}, -{252,124, 0}, {252,188, 0}, -{252,252, 0}, {188,252, 0}, -{124,252, 0}, { 64,252, 0}, /*48*/ -{ 0,252, 0}, { 0,252, 64}, -{ 0,252,124}, { 0,252,188}, -{ 0,252,252}, { 0,188,252}, -{ 0,124,252}, { 0, 64,252}, -{124,124,252}, {156,124,252}, -{188,124,252}, {220,124,252}, -{252,124,252}, {252,124,220}, -{252,124,188}, {252,124,156}, /*64*/ -{252,124,124}, {252,156,124}, -{252,188,124}, {252,220,124}, -{252,252,124}, {220,252,124}, -{188,252,124}, {156,252,124}, -{124,252,124}, {124,252,156}, -{124,252,188}, {124,252,220}, -{124,252,252}, {124,220,252}, -{124,188,252}, {124,156,252}, /*80*/ -{180,180,252}, {196,180,252}, -{216,180,252}, {232,180,252}, -{252,180,252}, {252,180,232}, -{252,180,216}, {252,180,196}, -{252,180,180}, {252,196,180}, -{252,216,180}, {252,232,180}, -{252,252,180}, {232,252,180}, -{216,252,180}, {196,252,180}, /*96*/ -{180,220,180}, {180,252,196}, -{180,252,216}, {180,252,232}, -{180,252,252}, {180,232,252}, -{180,216,252}, {180,196,252}, -{0,0,112}, {28,0,112}, -{56,0,112}, {84,0,112}, -{112,0,112}, {112,0,84}, -{112,0,56}, {112,0,28}, /*112*/ -{112,0,0}, {112,28,0}, -{112,56,0}, {112,84,0}, -{112,112,0}, {84,112,0}, -{56,112,0}, {28,112,0}, -{0,112,0}, {0,112,28}, -{0,112,56}, {0,112,84}, -{0,112,112}, {0,84,112}, -{0,56,112}, {0,28,112}, /*128*/ -{56,56,112}, {68,56,112}, -{84,56,112}, {96,56,112}, -{112,56,112}, {112,56,96}, -{112,56,84}, {112,56,68}, -{112,56,56}, {112,68,56}, -{112,84,56}, {112,96,56}, -{112,112,56}, {96,112,56}, -{84,112,56}, {68,112,56}, /*144*/ -{56,112,56}, {56,112,69}, -{56,112,84}, {56,112,96}, -{56,112,112}, {56,96,112}, -{56,84,112}, {56,68,112}, -{80,80,112}, {88,80,112}, -{96,80,112}, {104,80,112}, -{112,80,112}, {112,80,104}, -{112,80,96}, {112,80,88}, /*160*/ -{112,80,80}, {112,88,80}, -{112,96,80}, {112,104,80}, -{112,112,80}, {104,112,80}, -{96,112,80}, {88,112,80}, -{80,112,80}, {80,112,88}, -{80,112,96}, {80,112,104}, -{80,112,112}, {80,114,112}, -{80,96,112}, {80,88,112}, /*176*/ -{0,0,64}, {16,0,64}, -{32,0,64}, {48,0,64}, -{64,0,64}, {64,0,48}, -{64,0,32}, {64,0,16}, -{64,0,0}, {64,16,0}, -{64,32,0}, {64,48,0}, -{64,64,0}, {48,64,0}, -{32,64,0}, {16,64,0}, /*192*/ -{0,64,0}, {0,64,16}, -{0,64,32}, {0,64,48}, -{0,64,64}, {0,48,64}, -{0,32,64}, {0,16,64}, -{32,32,64}, {40,32,64}, -{48,32,64}, {56,32,64}, -{64,32,64}, {64,32,56}, -{64,32,48}, {64,32,40}, /*208*/ -{64,32,32}, {64,40,32}, -{64,48,32}, {64,56,32}, -{64,64,32}, {56,64,32}, -{48,64,32}, {40,64,32}, -{32,64,32}, {32,64,40}, -{32,64,48}, {32,64,56}, -{32,64,64}, {32,56,64}, -{32,48,64}, {32,40,64}, /*224*/ -{44,44,64}, {48,44,64}, -{52,44,64}, {60,44,64}, -{64,44,64}, {64,44,60}, -{64,44,52}, {64,44,48}, -{64,44,44}, {64,48,44}, -{64,52,44}, {64,60,44}, -{64,64,44}, {60,64,44}, -{52,64,44}, {48,64,44}, /*240*/ -{44,64,44}, {44,64,48}, -{44,64,52}, {44,64,60}, -{44,64,64}, {44,60,64}, -{44,55,64}, {44,48,64}, -{0,0,0}, {0,0,0}, -{0,0,0}, {0,0,0}, -{0,0,0}, {0,0,0}, -{0,0,0}, {0,0,0} /*256*/ -}; +static const RGB_Record WPG1_Palette[256] = + { + { 0, 0, 0}, { 0, 0,168}, + { 0,168, 0}, { 0,168,168}, + {168, 0, 0}, {168, 0,168}, + {168, 84, 0}, {168,168,168}, + { 84, 84, 84}, { 84, 84,252}, + { 84,252, 84}, { 84,252,252}, + {252, 84, 84}, {252, 84,252}, + {252,252, 84}, {252,252,252}, /*16*/ + { 0, 0, 0}, { 20, 20, 20}, + { 32, 32, 32}, { 44, 44, 44}, + { 56, 56, 56}, { 68, 68, 68}, + { 80, 80, 80}, { 96, 96, 96}, + {112,112,112}, {128,128,128}, + {144,144,144}, {160,160,160}, + {180,180,180}, {200,200,200}, + {224,224,224}, {252,252,252}, /*32*/ + { 0, 0,252}, { 64, 0,252}, + {124, 0,252}, {188, 0,252}, + {252, 0,252}, {252, 0,188}, + {252, 0,124}, {252, 0, 64}, + {252, 0, 0}, {252, 64, 0}, + {252,124, 0}, {252,188, 0}, + {252,252, 0}, {188,252, 0}, + {124,252, 0}, { 64,252, 0}, /*48*/ + { 0,252, 0}, { 0,252, 64}, + { 0,252,124}, { 0,252,188}, + { 0,252,252}, { 0,188,252}, + { 0,124,252}, { 0, 64,252}, + {124,124,252}, {156,124,252}, + {188,124,252}, {220,124,252}, + {252,124,252}, {252,124,220}, + {252,124,188}, {252,124,156}, /*64*/ + {252,124,124}, {252,156,124}, + {252,188,124}, {252,220,124}, + {252,252,124}, {220,252,124}, + {188,252,124}, {156,252,124}, + {124,252,124}, {124,252,156}, + {124,252,188}, {124,252,220}, + {124,252,252}, {124,220,252}, + {124,188,252}, {124,156,252}, /*80*/ + {180,180,252}, {196,180,252}, + {216,180,252}, {232,180,252}, + {252,180,252}, {252,180,232}, + {252,180,216}, {252,180,196}, + {252,180,180}, {252,196,180}, + {252,216,180}, {252,232,180}, + {252,252,180}, {232,252,180}, + {216,252,180}, {196,252,180}, /*96*/ + {180,220,180}, {180,252,196}, + {180,252,216}, {180,252,232}, + {180,252,252}, {180,232,252}, + {180,216,252}, {180,196,252}, + {0,0,112}, {28,0,112}, + {56,0,112}, {84,0,112}, + {112,0,112}, {112,0,84}, + {112,0,56}, {112,0,28}, /*112*/ + {112,0,0}, {112,28,0}, + {112,56,0}, {112,84,0}, + {112,112,0}, {84,112,0}, + {56,112,0}, {28,112,0}, + {0,112,0}, {0,112,28}, + {0,112,56}, {0,112,84}, + {0,112,112}, {0,84,112}, + {0,56,112}, {0,28,112}, /*128*/ + {56,56,112}, {68,56,112}, + {84,56,112}, {96,56,112}, + {112,56,112}, {112,56,96}, + {112,56,84}, {112,56,68}, + {112,56,56}, {112,68,56}, + {112,84,56}, {112,96,56}, + {112,112,56}, {96,112,56}, + {84,112,56}, {68,112,56}, /*144*/ + {56,112,56}, {56,112,69}, + {56,112,84}, {56,112,96}, + {56,112,112}, {56,96,112}, + {56,84,112}, {56,68,112}, + {80,80,112}, {88,80,112}, + {96,80,112}, {104,80,112}, + {112,80,112}, {112,80,104}, + {112,80,96}, {112,80,88}, /*160*/ + {112,80,80}, {112,88,80}, + {112,96,80}, {112,104,80}, + {112,112,80}, {104,112,80}, + {96,112,80}, {88,112,80}, + {80,112,80}, {80,112,88}, + {80,112,96}, {80,112,104}, + {80,112,112}, {80,114,112}, + {80,96,112}, {80,88,112}, /*176*/ + {0,0,64}, {16,0,64}, + {32,0,64}, {48,0,64}, + {64,0,64}, {64,0,48}, + {64,0,32}, {64,0,16}, + {64,0,0}, {64,16,0}, + {64,32,0}, {64,48,0}, + {64,64,0}, {48,64,0}, + {32,64,0}, {16,64,0}, /*192*/ + {0,64,0}, {0,64,16}, + {0,64,32}, {0,64,48}, + {0,64,64}, {0,48,64}, + {0,32,64}, {0,16,64}, + {32,32,64}, {40,32,64}, + {48,32,64}, {56,32,64}, + {64,32,64}, {64,32,56}, + {64,32,48}, {64,32,40}, /*208*/ + {64,32,32}, {64,40,32}, + {64,48,32}, {64,56,32}, + {64,64,32}, {56,64,32}, + {48,64,32}, {40,64,32}, + {32,64,32}, {32,64,40}, + {32,64,48}, {32,64,56}, + {32,64,64}, {32,56,64}, + {32,48,64}, {32,40,64}, /*224*/ + {44,44,64}, {48,44,64}, + {52,44,64}, {60,44,64}, + {64,44,64}, {64,44,60}, + {64,44,52}, {64,44,48}, + {64,44,44}, {64,48,44}, + {64,52,44}, {64,60,44}, + {64,64,44}, {60,64,44}, + {52,64,44}, {48,64,44}, /*240*/ + {44,64,44}, {44,64,48}, + {44,64,52}, {44,64,60}, + {44,64,64}, {44,60,64}, + {44,55,64}, {44,48,64}, + {0,0,0}, {0,0,0}, + {0,0,0}, {0,0,0}, + {0,0,0}, {0,0,0}, + {0,0,0}, {0,0,0} /*256*/ + }; static int ApproveFormatForWPG(const char *Format, ExceptionInfo *exception) { - const MagickInfo *magick_info; + const MagickInfo * + magick_info; - if(!strcmp(Format,"PFB")) return 0; + if (!strcmp(Format,"PFB")) return 0; - /*if(!strcmp(Format,"8BIMTEXT")) return 0; This test is no longer needed, META module includes this case. */ + /*if (!strcmp(Format,"8BIMTEXT")) return 0; This test is no longer needed, META module includes this case. */ magick_info = GetMagickInfo(Format,exception); - if(magick_info != (const MagickInfo *)NULL) - { - if(strcmp(magick_info->module, "META") == 0) return 0; - } + if (magick_info != (const MagickInfo *)NULL) + { + if (strcmp(magick_info->module, "META") == 0) return 0; + } return 1; } @@ -248,7 +250,8 @@ static int Rd_WP_DWORD(Image *image, magick_uint32_t *d) { - unsigned char b; + unsigned char + b; b = ReadBlobByte(image); *d = b; @@ -273,30 +276,37 @@ { unsigned long x; + register PixelPacket *q; - MagickPassFail RetVal = MagickFail; - IndexPacket index; - IndexPacket *indexes; + + MagickPassFail + RetVal = MagickFail; + + IndexPacket + index; + + IndexPacket * + indexes; if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "Insert row %ld of %lu...", y, image->rows); q = SetImagePixels(image,0,y,image->columns,1); - if(q == (PixelPacket *) NULL) + if (q == (PixelPacket *) NULL) return MagickFail; switch (bpp) { case 1: /* Convert bitmap scanline. WP seems to ignore palette even if it is present. */ - RetVal = ImportImagePixelArea(image,GrayQuantum,bpp,p,NULL,0); - break; + RetVal = ImportImagePixelArea(image,GrayQuantum,bpp,p,NULL,0); + break; case 4: /* Convert PseudoColor scanline. */ case 8: /* Convert PseudoColor scanline. */ - RetVal = ImportImagePixelArea(image,IndexQuantum,bpp,p,NULL,0); - break; + RetVal = ImportImagePixelArea(image,IndexQuantum,bpp,p,NULL,0); + break; case 2: /* Convert PseudoColor scanline. */ { @@ -307,10 +317,10 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "Image has no colormap, skipping..."); - return MagickFail; + return MagickFail; } x = 0; - while(x+3 < image->columns) + while (x+3 < image->columns) { index = (IndexPacket)((*p >> 6) & 0x3); VerifyColormapIndex(image,index); @@ -330,19 +340,19 @@ *q++ = image->colormap[index]; p++; } - if(x < image->columns) + if (x < image->columns) { index = (IndexPacket) ((*p >> 6) & 0x3); VerifyColormapIndex(image,index); indexes[x++] = index; *q++=image->colormap[index]; - if(x < image->columns) + if (x < image->columns) { index = (IndexPacket) ((*p >> 4) & 0x3); VerifyColormapIndex(image,index); indexes[x++] = index; *q++=image->colormap[index]; - if(x < image->columns) + if (x < image->columns) { index = (IndexPacket)((*p >> 2) & 0x3); VerifyColormapIndex(image,index); @@ -369,62 +379,70 @@ } - if(RetVal==MagickFail) - { - (void) LogMagickEvent(CoderEvent,GetMagickModule(),"ImportImagePixelArea failed for row: %lu, bpp: %d", y, bpp); - return MagickFail; - } + if (RetVal==MagickFail) + { + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"ImportImagePixelArea failed for row: %lu, bpp: %d", y, bpp); + return MagickFail; + } - if(!SyncImagePixels(image)) - { - (void) LogMagickEvent(CoderEvent,GetMagickModule(),"SyncImagePixels failed for row: %ld, bpp: %d", y, bpp); - return MagickFail; - } + if (!SyncImagePixels(image)) + { + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"SyncImagePixels failed for row: %ld, bpp: %d", y, bpp); + return MagickFail; + } -return RetVal; + return RetVal; } /* Helper for WPG1 raster reader. */ -#define InsertByte(b) \ -{ \ - BImgBuff[x]=b; \ - x++; \ - if((long) x>=ldblk) \ - { \ - if(InsertRow(BImgBuff,y,image,bpp)==MagickFail) { RetVal=-6; goto unpack_wpg_raser_error; } \ - x=0; \ - y++; \ - if(y>=image->rows) break; \ - } \ +#define InsertByte(b) \ + { \ + BImgBuff[x]=b; \ + x++; \ + if ((long) x>=ldblk) \ + { \ + if (InsertRow(BImgBuff,y,image,bpp)==MagickFail) \ + { \ + RetVal=-6; \ + goto unpack_wpg_raser_error; \ + } \ + x=0; \ + y++; \ + if (y>=image->rows) break; \ + } \ } /** Call this function to ensure that all data matrix is filled with something. This function * is used only to error recovery. */ -static MagickPassFail ZeroFillMissingData(unsigned char *BImgBuff,unsigned long x, unsigned long y, Image *image, - int bpp, long ldblk) +static MagickPassFail ZeroFillMissingData(unsigned char *BImgBuff, + unsigned long x, + unsigned long y, + Image *image, + int bpp, |
|
From: GraphicsMagick C. <gra...@li...> - 2024-12-16 16:51:33
|
changeset cf7cd5ebabb0 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=cf7cd5ebabb0 summary: Support and use XML predefined entities substitions for '&' and '<' in delegates.mgk so the file syntax is valid XML. diffstat: ChangeLog | 13 +++++++++++++ VisualMagick/installer/inc/version.isx | 4 ++-- config/delegates.mgk.in | 22 +++++++++++++++++----- magick/delegate.c | 15 +++++++++++++++ magick/utility.c | 8 ++++++-- magick/version.h | 4 ++-- www/ChangeLog.html | 13 +++++++++++++ 7 files changed, 68 insertions(+), 11 deletions(-) diffs (165 lines): diff -r 766c366df86d -r cf7cd5ebabb0 ChangeLog --- a/ChangeLog Thu Dec 05 08:18:29 2024 -0600 +++ b/ChangeLog Mon Dec 16 10:50:23 2024 -0600 @@ -1,3 +1,16 @@ +2024-12-16 Bob Friesenhahn <bfr...@si...> + + * config/delegates.mgk.in: Use XML predefined entities + substitutions for '&' and '<' so that the file syntax is valid + XML. Older/existing files using "invalid" XML continue to be + accepted. + + * magick/delegate.c (ReadConfigureFile): Support XML predefined + entities substitutions. + + * magick/utility.c (SubstituteString): Fix off-by-one error which + caused back-to-back substitions to not work correctly. + 2024-12-05 Bob Friesenhahn <bfr...@si...> * fuzzing/oss-fuzz-build.sh: Remove duplicate request. diff -r 766c366df86d -r cf7cd5ebabb0 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Thu Dec 05 08:18:29 2024 -0600 +++ b/VisualMagick/installer/inc/version.isx Mon Dec 16 10:50:23 2024 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020241205" -#define public MagickPackageReleaseDate "snapshot-20241205" +#define public MagickPackageVersionAddendum ".020241216" +#define public MagickPackageReleaseDate "snapshot-20241216" diff -r 766c366df86d -r cf7cd5ebabb0 config/delegates.mgk.in --- a/config/delegates.mgk.in Thu Dec 05 08:18:29 2024 -0600 +++ b/config/delegates.mgk.in Mon Dec 16 10:50:23 2024 -0600 @@ -68,11 +68,23 @@ Use 'gm convert -list delegates' to verify how the contents of this file has been parsed. + In XML, characters '&', '<', and '>' have special meanings. See + "https://www.w3.org/TR/xml/#syntax". For example, '&' should be '&' + or the character reference '&'. XML supports the predefined entities + &, <, >, ', and ". The ampersand character (&) and + the left angle bracket (<) MUST NOT appear in their literal form in the + command definition text. GraphicsMagick after December 16, 2024 + introduces support for the predefined entities so that this file may be + expressed in valid XML, but the previous invalid syntax is still accepted. + --> <delegatemap> - <delegate decode="browse" stealth="True" command='"@BrowseDelegate@" "http://www.GraphicsMagick.org/" &' /> - <delegate decode="cgm" command='"@CGMDecodeDelegate@" -d ps < "%i" > "%o" 2>/dev/null' /> + <delegate decode="browse" stealth="True" command='"@BrowseDelegate@" "http://www.GraphicsMagick.org/" &' /> + <delegate decode="cgm" command='"@CGMDecodeDelegate@" -d ps < "%i" > "%o" 2>/dev/null' /> + <!-- The following recipe supports the original dcraw, which is no longer supported by Dave Coffin --> <delegate decode="dcraw" command='"@DCRAWDecodeDelegate@" -c -w @DcrawExtraOptions@ "%i" > "%o"' /> + <!-- The following recipe supports dcraw_emu from libraw. The critical -c option is used for something else! --> + <!-- <delegate decode="dcraw" command='"@DCRAWDecodeDelegate@" -Z - -w @DcrawExtraOptions@ "%i" > "%o"' /> --> <delegate decode="dot" command='"@DOTDecodeDelegate@" -Tps "%i" -o "%o"' /> <delegate decode="dvi" command='"@DVIDecodeDelegate@" -q -o "%o" "%i"' /> <delegate decode="edit" stealth="True" command='"@EditorDelegate@" -title "Edit Image Comment" -e vi "%o"' /> @@ -107,8 +119,8 @@ <!-- Read color PDF using Poppler's pdftoppm --> <delegate decode="poppler-color" stealth="True" command='"pdftoppm" "-freetype" "yes" "-rx" "-aa" "yes" "-aaVector" "yes" "72" "-ry" "72" "%s" ">" "%s"' /> - <delegate decode="hpg" command='"@HPGLDecodeDelegate@" -q -m eps -f `basename "%o"` "%i" && @MVDelegate@ -f `basename "%o"` "%o"' /> - <delegate decode="hpgl" command='"@HPGLDecodeDelegate@" -q -m eps -f `basename "%o"` "%i" && @MVDelegate@ -f `basename "%o"` "%o"' /> + <delegate decode="hpg" command='"@HPGLDecodeDelegate@" -q -m eps -f `basename "%o"` "%i" && @MVDelegate@ -f `basename "%o"` "%o"' /> + <delegate decode="hpgl" command='"@HPGLDecodeDelegate@" -q -m eps -f `basename "%o"` "%i" && @MVDelegate@ -f `basename "%o"` "%o"' /> <!-- Read HTML file --> <delegate decode="htm" command='"@HTMLDecodeDelegate@" -U -o "%o" "%i"' /> <!-- Read HTML file --> @@ -132,5 +144,5 @@ <delegate decode="ps" encode="print" mode="encode" command='"@PrintDelegate@" "%i"' /> <!-- Read HTML file --> <delegate decode="shtml" command='"@HTMLDecodeDelegate@" -U -o "%o" "%i"' /> - <delegate encode="show" stealth="True" command='"@GMDelegate@" display -immutable -delay 0 -window_group %g -title "%l of %f" "%o" &' /> + <delegate encode="show" stealth="True" command='"@GMDelegate@" display -immutable -delay 0 -window_group %g -title "%l of %f" "%o" &' /> </delegatemap> diff -r 766c366df86d -r cf7cd5ebabb0 magick/delegate.c --- a/magick/delegate.c Thu Dec 05 08:18:29 2024 -0600 +++ b/magick/delegate.c Mon Dec 16 10:50:23 2024 -0600 @@ -1417,6 +1417,21 @@ if (LocaleCompare((char *) keyword,"command") == 0) { delegate_list->commands=AllocateString(token); + /* + Support XML predefined entities substitutions. + + FIXME: Support XML character reference syntax and + provide more optimized support for XML predefined + entities substitutions. + */ + if (strchr(delegate_list->commands,'&') != (char *) NULL) + { + SubstituteString((char **) &delegate_list->commands,"<","<"); + SubstituteString((char **) &delegate_list->commands,">",">"); + SubstituteString((char **) &delegate_list->commands,"'","'"); + SubstituteString((char **) &delegate_list->commands,""","\""); + SubstituteString((char **) &delegate_list->commands,"&","&"); + } #if defined(MSWINDOWS) if (strchr(delegate_list->commands,'@') != (char *) NULL) { diff -r 766c366df86d -r cf7cd5ebabb0 magick/utility.c --- a/magick/utility.c Thu Dec 05 08:18:29 2024 -0600 +++ b/magick/utility.c Mon Dec 16 10:50:23 2024 -0600 @@ -5735,7 +5735,11 @@ if ((p[i] == search[0]) && (strncmp(&p[i],search,search_len) == 0)) { if (0 == replace_len) - replace_len=strlen(replace); + { + replace_len=strlen(replace); + if (replace_len == 0) + break; + } if (replace_len > search_len) { size_t @@ -5754,7 +5758,7 @@ (void) MagickCloneMemory(&p[i+replace_len],&p[i+search_len], strlen(&p[i+search_len])+1); (void) MagickCloneMemory(&p[i],replace,replace_len); - i += replace_len; + i += (replace_len-1); replaced=MagickTrue; } } diff -r 766c366df86d -r cf7cd5ebabb0 magick/version.h --- a/magick/version.h Thu Dec 05 08:18:29 2024 -0600 +++ b/magick/version.h Mon Dec 16 10:50:23 2024 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20241205" -#define MagickReleaseDate "snapshot-20241205" +#define MagickChangeDate "20241216" +#define MagickReleaseDate "snapshot-20241216" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 766c366df86d -r cf7cd5ebabb0 www/ChangeLog.html --- a/www/ChangeLog.html Thu Dec 05 08:18:29 2024 -0600 +++ b/www/ChangeLog.html Mon Dec 16 10:50:23 2024 -0600 @@ -38,6 +38,19 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2024-12-16 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>config/delegates.mgk.in: Use XML predefined entities +substitutions for '&' and '<' so that the file syntax is valid +XML. Older/existing files using "invalid" XML continue to be +accepted.</p></li> +<li><p>magick/delegate.c (ReadConfigureFile): Support XML predefined +entities substitutions.</p></li> +<li><p>magick/utility.c (SubstituteString): Fix off-by-one error which +caused back-to-back substitions to not work correctly.</p></li> +</ul> +</blockquote> <p>2024-12-05 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"> |
|
From: GraphicsMagick C. <gra...@li...> - 2024-12-05 14:19:31
|
changeset 9aa38fc8c683 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9aa38fc8c683 summary: fuzzing/README.txt: Add notes about building libheif dependencies. changeset b62c363aed81 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b62c363aed81 summary: ReadHEIFImage(): Trace the top level number of images. changeset 766c366df86d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=766c366df86d summary: fuzzing/oss-fuzz-build.sh: Remove duplicate request. diffstat: ChangeLog | 10 +++++ VisualMagick/installer/inc/version.isx | 4 +- coders/heif.c | 14 ++++++- fuzzing/README.txt | 60 ++++++++++++++++++++++++++++++++++ fuzzing/oss-fuzz-build.sh | 1 - magick/version.h | 4 +- www/ChangeLog.html | 10 +++++ 7 files changed, 95 insertions(+), 8 deletions(-) diffs (164 lines): diff -r 8c8c7256924a -r 766c366df86d ChangeLog --- a/ChangeLog Sun Dec 01 11:23:56 2024 -0600 +++ b/ChangeLog Thu Dec 05 08:18:29 2024 -0600 @@ -1,3 +1,13 @@ +2024-12-05 Bob Friesenhahn <bfr...@si...> + + * fuzzing/oss-fuzz-build.sh: Remove duplicate request. + + * coders/heif.c (ReadHEIFImage): Trace the top level number of + images. + + * fuzzing/README.txt: Add notes about building libheif + dependencies. + 2024-12-01 Bob Friesenhahn <bfr...@si...> * fuzzing/oss-fuzz-build.sh: Enable 'uncompressed' in libheif diff -r 8c8c7256924a -r 766c366df86d VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sun Dec 01 11:23:56 2024 -0600 +++ b/VisualMagick/installer/inc/version.isx Thu Dec 05 08:18:29 2024 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020241201" -#define public MagickPackageReleaseDate "snapshot-20241201" +#define public MagickPackageVersionAddendum ".020241205" +#define public MagickPackageReleaseDate "snapshot-20241205" diff -r 8c8c7256924a -r 766c366df86d coders/heif.c --- a/coders/heif.c Sun Dec 01 11:23:56 2024 -0600 +++ b/coders/heif.c Thu Dec 05 08:18:29 2024 -0600 @@ -568,9 +568,17 @@ ThrowHEIFReaderException(CorruptImageError, AnErrorHasOccurredReadingFromFile, image); } - /* no support for reading multiple images but could be added */ - if (heif_context_get_number_of_top_level_images(heif) != 1) - ThrowHEIFReaderException(CoderError, NumberOfImagesIsNotSupported, image); + /* FIXME: no support for reading multiple images but should be added */ + { + int number_of_top_level_images; + number_of_top_level_images=heif_context_get_number_of_top_level_images(heif); + if (image->logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + "heif_context_get_number_of_top_level_images() reports %d images", + number_of_top_level_images); + if (number_of_top_level_images != 1) + ThrowHEIFReaderException(CoderError, NumberOfImagesIsNotSupported, image); + } heif_status=heif_context_get_primary_image_handle(heif, &heif_image_handle); if (heif_status.code == heif_error_Memory_allocation_error) diff -r 8c8c7256924a -r 766c366df86d fuzzing/README.txt --- a/fuzzing/README.txt Sun Dec 01 11:23:56 2024 -0600 +++ b/fuzzing/README.txt Thu Dec 05 08:18:29 2024 -0600 @@ -91,3 +91,63 @@ Then use 'compile 2>&1 | tee build.log'. This executes /src/build.sh while in the initial "/src/graphicsmagick" directory but does some other things as well. + + +Building libheif (and dependencies) for development +--------------------------------------------------- + +de265 ++++++ + +With sources under /home/bfriesen/src/libde265:: + + /home/bfriesen/src/libde265/configure --prefix=/usr/local CC=gcc CXX=g++ CFLAGS='-O -g' CXXFLAGS='-O -g' + +x265 +++++ + +With sources under /home/bfriesen/src/x265-stable:: + + cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS='-O -g' -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O -g' -DCMAKE_INSTALL_RPATH='/usr/local/lib' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DENABLE_ASSEMBLY:BOOL=ON -DX265_LATEST_TAG=TRUE /home/bfriesen/src/x265-stable/source + make -j 8 + make install + +openh264 +++++++++ + +The openh264 build is based on a well-designed pure GNU Makefile. + +With sources under /home/bfriesen/src/openh264:: + + mkdir openh264 + cd openh264 + make -j 8 -f /home/bfriesen/src/openh264/Makefile OS=linux CC=gcc CXX=g++ CFLAGS_OPT='-O3' LDFLAGS='-Wl,-rpath=/usr/local/lib' ARCH=x86_64 USE_ASM=No BUILDTYPE=Release PREFIX=/usr/local clean + make -j 8 -f /home/bfriesen/src/openh264/Makefile OS=linux CC=gcc CXX=g++ CFLAGS_OPT='-O3' LDFLAGS='-Wl,-rpath=/usr/local/lib' ARCH=x86_64 USE_ASM=No BUILDTYPE=Release PREFIX=/usr/local + make -j 8 -f /home/bfriesen/src/openh264/Makefile OS=linux CC=gcc CXX=g++ CFLAGS_OPT='-O3' LDFLAGS='-Wl,-rpath=/usr/local/lib' ARCH=x86_64 USE_ASM=No BUILDTYPE=Release PREFIX=/usr/local install + +aom ++++ + +With sources under /home/bfriesen/src/aom:: + + cmake -G "Unix Makefiles" -DAOM_TARGET_CPU=generic -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS='-O -g' -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O -g' -DCMAKE_INSTALL_RPATH='/usr/local/lib' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DBUILD_SHARED_LIBS=TRUE /home/bfriesen/src/aom + make -j 8 + make install + +openjpeg +++++++++ + +With sources under /home/bfriesen/src/openjpeg:: + + cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O -g' -DCMAKE_INSTALL_RPATH='/usr/local/lib' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON /home/bfriesen/src/openjpeg + make -j 8 + make install + +libheif ++++++++ + +With sources under /home/bfriesen/src/libheif:: + + cmake -DBUILD_SHARED_LIBS=on -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS='-O -g' -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS='-O -g' -DCMAKE_INSTALL_RPATH='/usr/local/lib' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DWITH_JPEG_DECODER=on -DWITH_JPEG_ENCODER=on -DWITH_OpenJPEG_ENCODER=on -DWITH_OpenJPEG_DECODER=on -DWITH_UNCOMPRESSED_CODEC=on /home/bfriesen/src/libheif + make -j 8 + make install diff -r 8c8c7256924a -r 766c366df86d fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Sun Dec 01 11:23:56 2024 -0600 +++ b/fuzzing/oss-fuzz-build.sh Thu Dec 05 08:18:29 2024 -0600 @@ -469,7 +469,6 @@ -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \ -DCMAKE_INSTALL_PREFIX="$WORK" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \ -DENABLE_ASSEMBLY:BOOL=OFF \ -DENABLE_SHARED:STRING=off \ -DX265_LATEST_TAG=TRUE \ diff -r 8c8c7256924a -r 766c366df86d magick/version.h --- a/magick/version.h Sun Dec 01 11:23:56 2024 -0600 +++ b/magick/version.h Thu Dec 05 08:18:29 2024 -0600 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20241201" -#define MagickReleaseDate "snapshot-20241201" +#define MagickChangeDate "20241205" +#define MagickReleaseDate "snapshot-20241205" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 8c8c7256924a -r 766c366df86d www/ChangeLog.html --- a/www/ChangeLog.html Sun Dec 01 11:23:56 2024 -0600 +++ b/www/ChangeLog.html Thu Dec 05 08:18:29 2024 -0600 @@ -38,6 +38,16 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2024-12-05 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>fuzzing/oss-fuzz-build.sh: Remove duplicate request.</p></li> +<li><p>coders/heif.c (ReadHEIFImage): Trace the top level number of +images.</p></li> +<li><p>fuzzing/README.txt: Add notes about building libheif +dependencies.</p></li> +</ul> +</blockquote> <p>2024-12-01 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"> |