MagickCore  6.9.11
Convert, Edit, Or Compose Bitmap Images
compress.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License. You may
6  obtain a copy of the License at
7 
8  https://imagemagick.org/script/license.php
9 
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 */
18 #ifndef MAGICKCORE_COMPRESS_H
19 #define MAGICKCORE_COMPRESS_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 typedef enum
26 {
36  JPEG2000Compression, /* ISO/IEC std 15444-1 */
46  LZMACompression, /* Lempel-Ziv-Markov chain algorithm */
47  JBIG1Compression, /* ISO/IEC std 11544 / ITU-T rec T.82 */
48  JBIG2Compression, /* ISO/IEC std 14492 / ITU-T rec T.88 */
52 
53 typedef struct _Ascii85Info
55 
59  LZWEncodeImage(Image *,const size_t,unsigned char *magick_restrict),
60  PackbitsEncodeImage(Image *,const size_t,unsigned char *magick_restrict),
61  ZLIBEncodeImage(Image *,const size_t,unsigned char *magick_restrict);
62 
63 extern MagickExport void
64  Ascii85Encode(Image *,const unsigned char),
67 
68 #if defined(__cplusplus) || defined(c_plusplus)
69 }
70 #endif
71 
72 #endif
_Ascii85Info::buffer
unsigned char buffer[10]
Definition: compress.c:79
SetImageType
MagickExport MagickBooleanType SetImageType(Image *image, const ImageType type)
Definition: attribute.c:1536
HuffmanOutputCode
#define HuffmanOutputCode(entry)
MBTable
static const HuffmanTable MBTable[]
Definition: compress.c:101
MagickExport
#define MagickExport
Definition: method-attribute.h:80
_Image::debug
MagickBooleanType debug
Definition: image.h:290
_Image::filename
char filename[MaxTextExtent]
Definition: image.h:278
GetPreviousImageInList
MagickExport Image * GetPreviousImageInList(const Image *images)
Definition: list.c:816
LZWClr
#define LZWClr
CloneImage
MagickExport Image * CloneImage(const Image *image, const size_t columns, const size_t rows, const MagickBooleanType detach, ExceptionInfo *exception)
Definition: image.c:767
BlobError
@ BlobError
Definition: exception.h:62
HuffmanDecodeImage
MagickExport MagickBooleanType HuffmanDecodeImage(Image *)
SetImageProgress
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
Definition: monitor.c:136
JBIG1Compression
@ JBIG1Compression
Definition: compress.h:47
magick_unused
#define magick_unused(x)
Definition: method-attribute.h:105
compress.h
MissingDelegateError
@ MissingDelegateError
Definition: exception.h:59
HashSize
#define HashSize
GetMagickModule
#define GetMagickModule()
Definition: log.h:29
DestroyCacheView
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
Definition: cache-view.c:256
Ascii85Tuple
static void Ascii85Tuple(Ascii85Info *ascii85_info, const unsigned char *magick_restrict data)
Definition: compress.c:231
LZWEod
#define LZWEod
MagickCoreSignature
#define MagickCoreSignature
Definition: method-attribute.h:86
MBHashB
#define MBHashB
Pxr24Compression
@ Pxr24Compression
Definition: compress.h:43
magick_restrict
#define magick_restrict
Definition: MagickCore.h:41
_Image::quality
size_t quality
Definition: image.h:164
FaxCompression
@ FaxCompression
Definition: compress.h:33
SetPixelRGBO
#define SetPixelRGBO(pixel, packet)
Definition: pixel-accessor.h:96
_Ascii85Info::line_break
ssize_t line_break
Definition: compress.c:73
image-private.h
monitor.h
MWHashB
#define MWHashB
_Image::columns
size_t columns
Definition: image.h:174
ResourceLimitWarning
@ ResourceLimitWarning
Definition: exception.h:32
LZMACompression
@ LZMACompression
Definition: compress.h:46
IndexPacket
Quantum IndexPacket
Definition: pixel.h:129
resource_.h
WriteBlob
MagickExport ssize_t WriteBlob(Image *, const size_t, const unsigned char *)
ZLIBEncodeImage
MagickExport MagickBooleanType ZLIBEncodeImage(Image *image, const size_t magick_unused(length), unsigned char *magick_unused(pixels))
Definition: compress.c:1291
PixelsPerInchResolution
@ PixelsPerInchResolution
Definition: image.h:93
ResourceLimitError
@ ResourceLimitError
Definition: exception.h:55
HuffmanTable::code
size_t code
Definition: compress.c:86
_CacheView
Definition: cache-view.c:66
Ascii85Flush
MagickExport void Ascii85Flush(Image *image)
Definition: compress.c:279
OutputBit
#define OutputBit(count)
string_.h
ZLIBEncodeImage
MagickExport MagickBooleanType ZLIBEncodeImage(Image *, const size_t, unsigned char *magick_restrict)
_Ascii85Info::offset
ssize_t offset
Definition: compress.c:72
ThrowBinaryImageException
#define ThrowBinaryImageException(severity, tag, context)
Definition: exception-private.h:35
MagickTrue
@ MagickTrue
Definition: magick-type.h:201
QueueCacheViewAuthenticPixels
MagickExport PixelPacket * QueueCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:883
blob.h
LZWEncodeImage
MagickExport MagickBooleanType LZWEncodeImage(Image *, const size_t, unsigned char *magick_restrict)
OutputCode
#define OutputCode(code)
HuffmanTable::length
size_t length
Definition: compress.c:87
SyncCacheViewAuthenticPixels
MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *magick_restrict cache_view, ExceptionInfo *exception)
Definition: cache-view.c:1000
blob-private.h
CoderError
@ CoderError
Definition: exception.h:65
JBIG2Compression
@ JBIG2Compression
Definition: compress.h:48
B44ACompression
@ B44ACompression
Definition: compress.h:45
NoCompression
@ NoCompression
Definition: compress.h:28
WebPCompression
@ WebPCompression
Definition: compress.h:50
MWTable
static const HuffmanTable MWTable[]
Definition: compress.c:132
TraceEvent
@ TraceEvent
Definition: log.h:38
AcquireMagickMemory
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:521
B44Compression
@ B44Compression
Definition: compress.h:44
_Image::colormap
PixelPacket * colormap
Definition: image.h:180
JPEG2000Compression
@ JPEG2000Compression
Definition: compress.h:36
HuffmanTable
Definition: compress.c:83
_BlobInfo
Definition: blob.c:116
HuffmanEncodeImage
MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info, Image *image, Image *inject_image)
Definition: compress.c:678
GetVirtualPixels
MagickExport const PixelPacket * GetVirtualPixels(const Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache.c:3436
TWTable
static const HuffmanTable TWTable[]
Definition: compress.c:178
_Image
Definition: image.h:153
LZWEncodeImage
MagickExport MagickBooleanType LZWEncodeImage(Image *image, const size_t length, unsigned char *magick_restrict pixels)
Definition: compress.c:923
EXId
#define EXId
Definition: compress.c:98
GetCacheViewAuthenticIndexQueue
MagickExport IndexPacket * GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
Definition: cache-view.c:564
ZstdCompression
@ ZstdCompression
Definition: compress.h:49
_Image::blob
BlobInfo * blob
Definition: image.h:275
AcquireAuthenticCacheView
MagickExport CacheView * AcquireAuthenticCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:111
InputBit
#define InputBit(bit)
MagickMax
#define MagickMax(x, y)
Definition: image-private.h:36
LocaleCompare
MagickExport int LocaleCompare(const char *p, const char *q)
Definition: locale.c:1435
attribute.h
_Image::y_resolution
double y_resolution
Definition: image.h:210
_Image::exception
ExceptionInfo exception
Definition: image.h:287
_Image::x_resolution
double x_resolution
Definition: image.h:209
_ImageInfo
Definition: image.h:362
BilevelType
@ BilevelType
Definition: image.h:52
MagickFalse
@ MagickFalse
Definition: magick-type.h:200
_ImageInfo::magick
char magick[MaxTextExtent]
Definition: image.h:470
Ascii85Initialize
MagickExport void Ascii85Initialize(Image *image)
Definition: compress.c:265
TWId
#define TWId
Definition: compress.c:94
HuffmanTable
struct HuffmanTable HuffmanTable
TBId
#define TBId
Definition: compress.c:96
HuffmanDecodeImage
MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
Definition: compress.c:363
color-private.h
MaxLineExtent
#define MaxLineExtent
JPEGCompression
@ JPEGCompression
Definition: compress.h:35
QuantumRange
#define QuantumRange
Definition: magick-type.h:86
_Ascii85Info
Definition: compress.c:70
PackbitsEncodeImage
MagickExport MagickBooleanType PackbitsEncodeImage(Image *, const size_t, unsigned char *magick_restrict)
_Image::rows
size_t rows
Definition: image.h:175
WriteBlobByte
MagickExport ssize_t WriteBlobByte(Image *, const unsigned char)
cache.h
constitute.h
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:199
_Ascii85Info::tuple
char tuple[6]
Definition: compress.c:76
LosslessJPEGCompression
@ LosslessJPEGCompression
Definition: compress.h:37
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1123
HuffmanTable::id
size_t id
Definition: compress.c:85
ZipCompression
@ ZipCompression
Definition: compress.h:40
UndefinedCompressionQuality
#define UndefinedCompressionQuality
Definition: image-private.h:50
_ExceptionInfo
Definition: exception.h:103
_ImageInfo::signature
size_t signature
Definition: image.h:489
UndefinedCompression
@ UndefinedCompression
Definition: compress.h:27
Ascii85Initialize
MagickExport void Ascii85Initialize(Image *)
Definition: compress.c:265
SetPixelIndex
#define SetPixelIndex(indexes, value)
Definition: pixel-accessor.h:78
studio.h
HuffmanTable::count
size_t count
Definition: compress.c:88
PizCompression
@ PizCompression
Definition: compress.h:42
PackbitsEncodeImage
MagickExport MagickBooleanType PackbitsEncodeImage(Image *image, const size_t length, unsigned char *magick_restrict pixels)
Definition: compress.c:1086
Ascii85Encode
MagickExport void Ascii85Encode(Image *image, const unsigned char code)
Definition: compress.c:301
MagickRealType
MagickDoubleType MagickRealType
Definition: magick-type.h:125
monitor-private.h
DXT1Compression
@ DXT1Compression
Definition: compress.h:30
DestroyImage
MagickExport Image * DestroyImage(Image *image)
Definition: image.c:1166
EXTable
static const HuffmanTable EXTable[]
Definition: compress.c:120
ZipSCompression
@ ZipSCompression
Definition: compress.h:41
memory_.h
_Image::ascii85
Ascii85Info * ascii85
Definition: image.h:272
LZWCompression
@ LZWCompression
Definition: compress.h:38
pixel-accessor.h
exception-private.h
ThrowMagickException
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
Definition: exception.c:1149
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
exception.h
GetPixelIntensity
MagickExport MagickRealType GetPixelIntensity(const Image *image, const PixelPacket *magick_restrict pixel)
Definition: pixel.c:2292
option.h
CompressionType
CompressionType
Definition: compress.h:26
_Image::compression
CompressionType compression
Definition: image.h:161
list.h
MWHashA
#define MWHashA
LogMagickEvent
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1420
InitializeHashTable
#define InitializeHashTable(hash, table, a, b)
TBTable
static const HuffmanTable TBTable[]
Definition: compress.c:151
_Image::units
ResolutionType units
Definition: image.h:198
MBHashA
#define MBHashA
DXT3Compression
@ DXT3Compression
Definition: compress.h:31
Ascii85Flush
MagickExport void Ascii85Flush(Image *)
Group4Compression
@ Group4Compression
Definition: compress.h:34
ResourceLimitFatalError
@ ResourceLimitFatalError
Definition: exception.h:78
MagickMin
#define MagickMin(x, y)
Definition: image-private.h:37
DXT5Compression
@ DXT5Compression
Definition: compress.h:32
LoadImageTag
#define LoadImageTag
Definition: image-private.h:33
MWId
#define MWId
Definition: compress.c:95
HuffmanEncodeImage
MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *, Image *, Image *)
_PixelPacket
Definition: pixel.h:132
ThrowBinaryException
#define ThrowBinaryException(severity, tag, context)
Definition: exception-private.h:29
RLECompression
@ RLECompression
Definition: compress.h:39
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:634
BZipCompression
@ BZipCompression
Definition: compress.h:29
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135
Ascii85Encode
MagickExport void Ascii85Encode(Image *, const unsigned char)
MBId
#define MBId
Definition: compress.c:97