GraphicsMagick: coders/bmp.c Use more aggresive image rewind alg...
GraphicsMagick Commits <[email protected]> Mon, 02 Oct 2023 12:36:38 -0500
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.5431.1696268212.1370.graphicsmagick-commit@lists.sourceforge.net> |
changeset debb806be563 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=debb806be563 summary: coders/bmp.c Use more aggresive image rewind algorithm pasted from mat.c diffstat: ChangeLog | 2 ++ coders/bmp.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 0 deletions(-) diffs (55 lines): diff -r acad39861af2 -r debb806be563 ChangeLog --- a/ChangeLog Mon Oct 02 06:51:16 2023 +0200 +++ b/ChangeLog Mon Oct 02 19:36:00 2023 +0200 @@ -2,6 +2,8 @@ * coders/bmp.c: Attempt to read BMP with 48bpp. + Use more aggresive image rewind algorithm pasted from mat.c + 2023-10-01 Fojtik Jaroslav <[email protected]> * coders/bmp.c: Fix BMP 64bpp reader. See this URL: diff -r acad39861af2 -r debb806be563 coders/bmp.c --- a/coders/bmp.c Mon Oct 02 06:51:16 2023 +0200 +++ b/coders/bmp.c Mon Oct 02 19:36:00 2023 +0200 @@ -1915,8 +1915,39 @@ } } while (IsBMP(magick,2)); ExitLoop: + + { + Image *p; + long scene=0; + + /* + Rewind list, removing any empty images while rewinding. + */ + p=image; + image=NULL; + while (p != (Image *)NULL) + { + Image *tmp=p; + if ((p->rows == 0) || (p->columns == 0)) { + p=p->previous; + DeleteImageFromList(&tmp); + } else { + image=p; + p=p->previous; + } + } + + /* + Fix scene numbers + */ + for (p=image; p != (Image *) NULL; p=p->next) + p->scene=scene++; + } + +/* while (image->previous != (Image *) NULL) image=image->previous; +*/ CloseBlob(image); if (logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(),"return");