From dbeaafc95605660aedea7014ad4eed0e23ff0142 Mon Sep 17 00:00:00 2001 From: Cristy Date: Fri, 1 Sep 2023 09:38:51 -0400 Subject: [PATCH] support LERC compression --- MagickCore/compress.h | 3 ++- MagickCore/option.c | 1 + coders/tiff.c | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/MagickCore/compress.h b/MagickCore/compress.h index 194831a08a..0b9b954a2e 100644 --- a/MagickCore/compress.h +++ b/MagickCore/compress.h @@ -51,7 +51,8 @@ typedef enum DWAACompression, DWABCompression, BC7Compression, - BC5Compression + BC5Compression, + LERCCompression /* https://github.com/Esri/lerc */ } CompressionType; typedef struct _Ascii85Info diff --git a/MagickCore/option.c b/MagickCore/option.c index 87808f2668..f6e468ef0d 100644 --- a/MagickCore/option.c +++ b/MagickCore/option.c @@ -1372,6 +1372,7 @@ static const OptionInfo { "JBIG2", JBIG2Compression, UndefinedOptionFlag, MagickFalse }, { "JPEG2000", JPEG2000Compression, UndefinedOptionFlag, MagickFalse }, { "JPEG", JPEGCompression, UndefinedOptionFlag, MagickFalse }, + { "LERC", LERCCompression, UndefinedOptionFlag, MagickFalse }, { "LosslessJPEG", LosslessJPEGCompression, UndefinedOptionFlag, MagickFalse }, { "Lossless", LosslessJPEGCompression, UndefinedOptionFlag, MagickFalse }, { "LZMA", LZMACompression, UndefinedOptionFlag, MagickFalse }, diff --git a/coders/tiff.c b/coders/tiff.c index 706a8f504c..4d193acb73 100644 --- a/coders/tiff.c +++ b/coders/tiff.c @@ -1576,6 +1576,9 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, break; } case COMPRESSION_OJPEG: image->compression=JPEGCompression; break; +#if defined(COMPRESSION_LERC) + case COMPRESSION_LERC: image->compression=LERCCompression; break; +#endif #if defined(COMPRESSION_LZMA) case COMPRESSION_LZMA: image->compression=LZMACompression; break; #endif @@ -2383,6 +2386,9 @@ ModuleExport size_t RegisterTIFFImage(void) #if defined(COMPRESSION_JPEG) ", JPEG" #endif +#if defined(COMPRESSION_LERC) + ", LERC" +#endif #if defined(COMPRESSION_LZW) ", LZW" #endif @@ -3587,6 +3593,13 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, compress_tag=COMPRESSION_JPEG; break; } +#if defined(COMPRESSION_LERC) + case LERCCompression: + { + compress_tag=COMPRESSION_LERC; + break; + } +#endif #if defined(COMPRESSION_LZMA) case LZMACompression: { @@ -3865,6 +3878,10 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, } case COMPRESSION_CCITTFAX4: break; +#if defined(LERC_SUPPORT) && defined(COMPRESSION_LERC) + case COMPRESSION_LERC: + break; +#endif #if defined(LZMA_SUPPORT) && defined(COMPRESSION_LZMA) case COMPRESSION_LZMA: {