GraphicsMagick: ReadIdentityImage(): Return a PseudoClass image ...
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.461.1679871738.6776.graphicsmagick-commit@lists.sourceforge.net> |
changeset 11f622f51ff5 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=11f622f51ff5 summary: ReadIdentityImage(): Return a PseudoClass image if possible. diffstat: ChangeLog | 3 +++ coders/identity.c | 28 ++++++++++++++++++++++------ www/Changelog.html | 2 ++ 3 files changed, 27 insertions(+), 6 deletions(-) diffs (109 lines): diff -r 63c1903547d7 -r 11f622f51ff5 ChangeLog --- a/ChangeLog Sun Mar 26 16:24:04 2023 -0500 +++ b/ChangeLog Sun Mar 26 18:02:08 2023 -0500 @@ -1,5 +1,8 @@ 2023-03-26 Bob Friesenhahn <[email protected]> + * coders/identity.c (ReadIdentityImage): Return a PseudoClass + image if possible. + * coders/miff.c (ReadMIFFImage): With depth == 32, the range of image->colors is 1 to 65536. diff -r 63c1903547d7 -r 11f622f51ff5 coders/identity.c --- a/coders/identity.c Sun Mar 26 16:24:04 2023 -0500 +++ b/coders/identity.c Sun Mar 26 18:02:08 2023 -0500 @@ -12,6 +12,7 @@ */ #include "magick/studio.h" #include "magick/blob.h" +#include "magick/colormap.h" #include "magick/pixel_cache.h" #include "magick/constitute.h" #include "magick/magick.h" @@ -65,14 +66,12 @@ unsigned long cube_size, - order; + order, + row_count=0; long y; - unsigned long - row_count=0; - unsigned int status=MagickPass; @@ -97,6 +96,9 @@ cube_size=order*order; image->columns=image->rows=order*order*order; + if (image->columns*image->rows <= MaxColormapSize) + AllocateImageColormap(image,(const unsigned long) image->columns*image->rows); + #if defined(HAVE_OPENMP) # if defined(TUNE_OPENMP) # pragma omp parallel for schedule(runtime) shared(row_count, status) @@ -112,6 +114,12 @@ register PixelPacket *q; + register IndexPacket + *indexes = (IndexPacket *) NULL; + + register unsigned int + index = (unsigned int) y*image->columns; + #if defined(HAVE_OPENMP) # pragma omp critical (GM_IdentityImage) #endif @@ -123,6 +131,9 @@ if (q == (PixelPacket *) NULL) thread_status=MagickFail; + if (image->storage_class == PseudoClass) + indexes=AccessMutableIndexes(image); + if (q != (PixelPacket *) NULL) { double @@ -134,9 +145,9 @@ blue; blue=y/order; - for(green = 0; green < cube_size; green++) + for (green = 0; green < cube_size; green++) { - for(red = 0; red < cube_size; red++) + for (red = 0; red < cube_size; red++) { value=MaxRGBDouble * (double)red / (double)(cube_size - 1); q->red = RoundDoubleToQuantum(value); @@ -145,6 +156,11 @@ value = MaxRGBDouble * (double)blue / (double)(cube_size - 1); q->blue = RoundDoubleToQuantum(value); q->opacity = OpaqueOpacity; + if (indexes != (IndexPacket *) NULL) + { + image->colormap[index]=*q; + *indexes++=index++; + } q++; } } diff -r 63c1903547d7 -r 11f622f51ff5 www/Changelog.html --- a/www/Changelog.html Sun Mar 26 16:24:04 2023 -0500 +++ b/www/Changelog.html Sun Mar 26 18:02:08 2023 -0500 @@ -40,6 +40,8 @@ <p>2023-03-26 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/identity.c (ReadIdentityImage): Return a PseudoClass +image if possible.</p></li> <li><p>coders/miff.c (ReadMIFFImage): With depth == 32, the range of image->colors is 1 to 65536.</p></li> </ul>