diff --git a/Source/GSImageMagickImageRep.m b/Source/GSImageMagickImageRep.m index 385b2c568..55d59b75b 100644 --- a/Source/GSImageMagickImageRep.m +++ b/Source/GSImageMagickImageRep.m @@ -2,9 +2,11 @@ ImageMagick image representation. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2024 Free Software Foundation, Inc. Author: Eric Wasylishen + Riccardo Mottola + Date: June 2011 This file is part of the GNUstep Application Kit Library. @@ -123,13 +125,17 @@ + (NSBitmapImageRep *) imageRepWithImageMagickImage: (Image *)image return bmp; } +#define SIGNATURE_LENGTH 18 + + (NSArray*) imageRepsWithData: (NSData *)data allImages: (BOOL)allImages { NSMutableArray *reps = [NSMutableArray array]; ExceptionInfo *exception = AcquireExceptionInfo(); ImageInfo *imageinfo = CloneImageInfo(NULL); - Image *images, *image; + Image *images; + Image *image; + char signature[SIGNATURE_LENGTH]; // Set the background color to transparent // (otherwise SVG's are rendered against a white background by default) @@ -139,6 +145,14 @@ + (NSArray*) imageRepsWithData: (NSData *)data allImages: (BOOL)allImages QueryColorDatabase("none", &imageinfo->background_color, exception); #endif + memset(signature, 0, SIGNATURE_LENGTH); + [data getBytes: signature range: NSMakeRange([data length] - 18, 18)]; + if (strncmp(signature, "TRUEVISION-XFILE.", 17) == 0) + { + NSWarnLog(@"Targa file detected!, giving a magick hint..."); + strcpy(imageinfo->magick, "TGA"); + } + images = BlobToImage(imageinfo, [data bytes], [data length], exception); if (exception->severity != UndefinedException)