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)