blob: 9562385716246209333c7b98e0729904cff0fd2b [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
Cristyf6ff9ea2016-12-05 09:53:35 -05002 Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
cristy3ed852e2009-09-05 21:47:34 +00003 dedicated to making software imaging solutions freely available.
4
5 You may not use this file except in compliance with the License.
6 obtain a copy of the License at
7
Cristyf19d4142017-04-24 11:34:30 -04008 https://www.imagemagick.org/script/license.php
cristy3ed852e2009-09-05 21:47:34 +00009
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 MagickCore image compression/decompression methods.
17*/
Cristy83bceaa2016-06-03 20:39:35 -040018#ifndef MAGICKCORE_COMPRESS_H
19#define MAGICKCORE_COMPRESS_H
cristy3ed852e2009-09-05 21:47:34 +000020
21#if defined(__cplusplus) || defined(c_plusplus)
22extern "C" {
23#endif
24
25typedef enum
26{
27 UndefinedCompression,
cristy4c08aed2011-07-01 19:47:50 +000028 B44ACompression,
29 B44Compression,
cristy3ed852e2009-09-05 21:47:34 +000030 BZipCompression,
31 DXT1Compression,
32 DXT3Compression,
33 DXT5Compression,
34 FaxCompression,
35 Group4Compression,
cristy4c08aed2011-07-01 19:47:50 +000036 JBIG1Compression, /* ISO/IEC std 11544 / ITU-T rec T.82 */
37 JBIG2Compression, /* ISO/IEC std 14492 / ITU-T rec T.88 */
38 JPEG2000Compression, /* ISO/IEC std 15444-1 */
cristy3ed852e2009-09-05 21:47:34 +000039 JPEGCompression,
cristy3ed852e2009-09-05 21:47:34 +000040 LosslessJPEGCompression,
cristy4c08aed2011-07-01 19:47:50 +000041 LZMACompression, /* Lempel-Ziv-Markov chain algorithm */
cristy3ed852e2009-09-05 21:47:34 +000042 LZWCompression,
cristy4c08aed2011-07-01 19:47:50 +000043 NoCompression,
cristy3ed852e2009-09-05 21:47:34 +000044 PizCompression,
45 Pxr24Compression,
cristy4c08aed2011-07-01 19:47:50 +000046 RLECompression,
47 ZipCompression,
48 ZipSCompression
cristy3ed852e2009-09-05 21:47:34 +000049} CompressionType;
50
51typedef struct _Ascii85Info
52 Ascii85Info;
53
54extern MagickExport MagickBooleanType
cristy018f07f2011-09-04 21:15:19 +000055 HuffmanDecodeImage(Image *,ExceptionInfo *),
56 HuffmanEncodeImage(const ImageInfo *,Image *,Image *,ExceptionInfo *),
dirk05d2ff72015-11-18 23:13:43 +010057 LZWEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
cristya29f2b82015-05-30 14:10:30 +000058 ExceptionInfo *),
dirk05d2ff72015-11-18 23:13:43 +010059 PackbitsEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
60 ExceptionInfo *),
61 ZLIBEncodeImage(Image *,const size_t,unsigned char *magick_restrict,
62 ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +000063
64extern MagickExport void
65 Ascii85Encode(Image *,const unsigned char),
66 Ascii85Flush(Image *),
67 Ascii85Initialize(Image *);
68
69#if defined(__cplusplus) || defined(c_plusplus)
70}
71#endif
72
73#endif