GraphicsMagick: Merge heads and update generated files.
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.6592.1666273070.1350.graphicsmagick-commit@lists.sourceforge.net> |
changeset 9d9244d0390c in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9d9244d0390c summary: Merge heads and update generated files. diffstat: ChangeLog | 6 + VisualMagick/installer/inc/version.isx | 4 +- coders/tga.c | 126 ++++++++++---------------------- magick/version.h | 4 +- www/Changelog.html | 7 + 5 files changed, 58 insertions(+), 89 deletions(-) diffs (267 lines): diff -r 5b9c67fe14f5 -r 9d9244d0390c ChangeLog --- a/ChangeLog Wed Oct 19 10:59:58 2022 -0500 +++ b/ChangeLog Thu Oct 20 08:37:32 2022 -0500 @@ -1,3 +1,9 @@ +2022-10-20 Fojtik Jaroslav <[email protected]> + + * coders/tga.c Remove "optimisation" that has negligible or negative + effect to overall performance. + + 2022-10-19 Fojtik Jaroslav <[email protected]> * coders/tga.c Cleanup GCC compile warnings. diff -r 5b9c67fe14f5 -r 9d9244d0390c VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Wed Oct 19 10:59:58 2022 -0500 +++ b/VisualMagick/installer/inc/version.isx Thu Oct 20 08:37:32 2022 -0500 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020221019" -#define public MagickPackageReleaseDate "snapshot-20221019" +#define public MagickPackageVersionAddendum ".020221020" +#define public MagickPackageReleaseDate "snapshot-20221020" diff -r 5b9c67fe14f5 -r 9d9244d0390c coders/tga.c --- a/coders/tga.c Wed Oct 19 10:59:58 2022 -0500 +++ b/coders/tga.c Thu Oct 20 08:37:32 2022 -0500 @@ -254,55 +254,25 @@ } -static unsigned int ReadBlobLSBShortFromBuffer(unsigned char* buffer, size_t* readerpos) +static int LoadHeaderTGA(TGAInfo *tga_info, Image *image) { - unsigned int - value; + tga_info->id_length = ReadBlobByte(image); + tga_info->colormap_type = ReadBlobByte(image); + tga_info->image_type = ReadBlobByte(image); - value=buffer[(*readerpos)+1] << 8; - value|=buffer[*readerpos]; - *readerpos = *readerpos+2; - return(value); -} - - -static unsigned int ReadBlobByteFromBuffer(unsigned char* buffer, size_t* readerpos) -{ - unsigned int - value; - - value=(unsigned int)(buffer[*readerpos]); - *readerpos = *readerpos + 1; - return(value); + tga_info->colormap_index = ReadBlobLSBShort(image); + tga_info->colormap_length = ReadBlobLSBShort(image) & 0xFFFF; + tga_info->colormap_size = ReadBlobByte(image); + tga_info->x_origin = ReadBlobLSBShort(image); + tga_info->y_origin = ReadBlobLSBShort(image); + tga_info->width = ReadBlobLSBShort(image) & 0xFFFF; + tga_info->height = ReadBlobLSBShort(image) & 0xFFFF; + tga_info->bits_per_pixel = ReadBlobByte(image); + tga_info->attributes = ReadBlobByte(image); +return 0; } -static int LoadHeaderTGA(TGAInfo *tga_info, Image *image, unsigned char *readbuffer) -{ -static const size_t headersize = 15; -size_t readbufferpos = 0; - if(ReadBlob(image,3,readbuffer) != 3) return -1; - - tga_info->id_length = (unsigned char)ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - tga_info->colormap_type = (unsigned char)ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - tga_info->image_type = (unsigned char)ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - - readbufferpos = 0; - if(ReadBlob(image,headersize,readbuffer) != headersize) return -2; - - tga_info->colormap_index = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos); - tga_info->colormap_length = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos) & 0xFFFF; - tga_info->colormap_size = ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - tga_info->x_origin = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos); - tga_info->y_origin = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos); - tga_info->width = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos) & 0xFFFF; - tga_info->height = ReadBlobLSBShortFromBuffer(readbuffer, &readbufferpos) & 0xFFFF; - tga_info->bits_per_pixel = ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - tga_info->attributes = ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - assert(readbufferpos == headersize); -return 0; -} - static int ValidateHeaderTGA(const TGAInfo *tga_info) { @@ -395,10 +365,8 @@ unsigned int is_grayscale=MagickFalse; - unsigned char readbuffer[15]; + unsigned char readbuffer[4]; char CommentAndBuffer[256]; - size_t readbufferpos = 0; - /* Open image file. @@ -411,8 +379,9 @@ status = OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if(status == MagickFalse) ThrowReaderException(FileOpenError,UnableToOpenFile,image); + /* - Read TGA header information. + Read TGA footer - if exists. */ memset(&tga_footer, 0, sizeof(tga_footer)); memset(&tga_devel, 0, sizeof(tga_devel)); @@ -508,7 +477,7 @@ /* Read TGA header information. */ - if(LoadHeaderTGA(&tga_info, image, (unsigned char*)CommentAndBuffer) < 0) + if(LoadHeaderTGA(&tga_info, image) < 0) ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); if(ValidateHeaderTGA(&tga_info) < 0) @@ -665,17 +634,16 @@ break; } case 24: - case 32: + case 32: /* TODO: J.Fojtik - is this true? 32 bits, but only 24 bits read. Possible bug! */ { /* 8 bits each of blue, green and red. */ - if (ReadBlob(image, 3, readbuffer) != 3) + if(ReadBlob(image, 3, readbuffer) != 3) ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); - readbufferpos = 0; - pixel.blue=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.green=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.red=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); + pixel.blue = ScaleCharToQuantum(readbuffer[0]); + pixel.green = ScaleCharToQuantum(readbuffer[1]); + pixel.red = ScaleCharToQuantum(readbuffer[2]); break; } } @@ -778,25 +746,15 @@ /* 5 bits each of red green and blue. */ - unsigned int - packet; + const magick_uint16_t packet = ReadBlobLSBShort(image); - if (ReadBlob(image, 2, readbuffer) != 2) - { - status=MagickFail; - break; - } - readbufferpos = 0; - packet = ReadBlobByteFromBuffer(readbuffer, &readbufferpos); - packet |= (((unsigned int) ReadBlobByteFromBuffer(readbuffer, &readbufferpos)) << 8); - - pixel.red=(packet >> 10) & 0x1f; - pixel.red=ScaleCharToQuantum(ScaleColor5to8(pixel.red)); - pixel.green=(packet >> 5) & 0x1f; - pixel.green=ScaleCharToQuantum(ScaleColor5to8(pixel.green)); - pixel.blue=packet & 0x1f; - pixel.blue=ScaleCharToQuantum(ScaleColor5to8(pixel.blue)); - if (image->matte) + pixel.red = (packet >> 10) & 0x1f; + pixel.red = ScaleCharToQuantum(ScaleColor5to8(pixel.red)); + pixel.green = (packet >> 5) & 0x1f; + pixel.green = ScaleCharToQuantum(ScaleColor5to8(pixel.green)); + pixel.blue = packet & 0x1f; + pixel.blue = ScaleCharToQuantum(ScaleColor5to8(pixel.blue)); + if(image->matte) { if ((packet >> 15) & 0x01) pixel.opacity=OpaqueOpacity; @@ -815,31 +773,29 @@ /* 8 bits each of blue green and red. */ - if (ReadBlob(image, 3, readbuffer) != 3) + if(ReadBlob(image, 3, readbuffer) != 3) { status=MagickFail; break; } - readbufferpos = 0; - pixel.blue=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.green=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.red=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); + pixel.blue = ScaleCharToQuantum(readbuffer[0]); + pixel.green = ScaleCharToQuantum(readbuffer[1]); + pixel.red = ScaleCharToQuantum(readbuffer[2]); break; case 32: { /* 8 bits each of blue green and red. */ - if (ReadBlob(image, 4, readbuffer) != 4) + if(ReadBlob(image, 4, readbuffer) != 4) { status=MagickFail; break; } - readbufferpos = 0; - pixel.blue=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.green=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.red=ScaleCharToQuantum(ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); - pixel.opacity=ScaleCharToQuantum(255-ReadBlobByteFromBuffer(readbuffer, &readbufferpos)); + pixel.blue = ScaleCharToQuantum(readbuffer[0]); + pixel.green = ScaleCharToQuantum(readbuffer[1]); + pixel.red = ScaleCharToQuantum(readbuffer[2]); + pixel.opacity = ScaleCharToQuantum(255-readbuffer[3]); break; } } @@ -898,7 +854,7 @@ if (image->scene >= (image_info->subimage+image_info->subrange-1)) break; - if(LoadHeaderTGA(&tga_info, image, (unsigned char*)CommentAndBuffer) < 0) + if(LoadHeaderTGA(&tga_info, image) < 0) status = MagickFalse; else { diff -r 5b9c67fe14f5 -r 9d9244d0390c magick/version.h --- a/magick/version.h Wed Oct 19 10:59:58 2022 -0500 +++ b/magick/version.h Thu Oct 20 08:37:32 2022 -0500 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x272400 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 27,24,0 -#define MagickChangeDate "20221019" -#define MagickReleaseDate "snapshot-20221019" +#define MagickChangeDate "20221020" +#define MagickReleaseDate "snapshot-20221020" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 5b9c67fe14f5 -r 9d9244d0390c www/Changelog.html --- a/www/Changelog.html Wed Oct 19 10:59:58 2022 -0500 +++ b/www/Changelog.html Thu Oct 20 08:37:32 2022 -0500 @@ -37,6 +37,13 @@ </div> <div class="document"> +<p>2022-10-20 Fojtik Jaroslav <<a class="reference external" href="mailto:JaFojtik%40yandex.com">JaFojtik<span>@</span>yandex<span>.</span>com</a>></p> +<blockquote> +<ul class="simple"> +<li><p>coders/tga.c Remove "optimisation" that has negligible or negative +effect to overall performance.</p></li> +</ul> +</blockquote> <p>2022-10-19 Fojtik Jaroslav <<a class="reference external" href="mailto:JaFojtik%40yandex.com">JaFojtik<span>@</span>yandex<span>.</span>com</a>></p> <blockquote> <ul class="simple">