1 /*
2   Copyright 1999-2021 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 deprecated methods.
17 */
18 #ifndef MAGICKCORE_DEPRECATE_H
19 #define MAGICKCORE_DEPRECATE_H
20 
21 #include <stdarg.h>
22 #include "magick/blob.h"
23 #include "magick/cache-view.h"
24 #include "magick/draw.h"
25 #include "magick/constitute.h"
26 #include "magick/magick-config.h"
27 #include "magick/pixel.h"
28 #include "magick/quantize.h"
29 #include "magick/quantum.h"
30 #include "magick/registry.h"
31 #include "magick/semaphore.h"
32 
33 #if defined(__cplusplus) || defined(c_plusplus)
34 extern "C" {
35 #endif
36 
37 #if !defined(MAGICKCORE_EXCLUDE_DEPRECATED)
38 
39 #if !defined(magick_attribute)
40 #  if !defined(__clang__) && !defined(__GNUC__)
41 #    define magick_attribute(x) /*nothing*/
42 #  else
43 #    define magick_attribute __attribute__
44 #  endif
45 #endif
46 
47 #define Downscale(quantum)  ScaleQuantumToChar(quantum)
48 #define LABColorspace LabColorspace
49 #define CompressPixelGamma(pixel)  DecodePixelGamma(pixel)
50 #define DecodesRGBGamma(pixel)  DecodePixelGamma(pixel)
51 #define EncodesRGBGamma(pixel)  EncodePixelGamma(pixel)
52 #define ExpandPixelGamma(pixel)  EncodePixelGamma(pixel)
53 #define Intensity(color)  PixelIntensityToQuantum(color)
54 #define LiberateUniqueFileResource(resource) \
55   RelinquishUniqueFileResource(resource)
56 #define LiberateMagickResource(resource)  RelinquishMagickResource(resource)
57 #define LiberateSemaphore(semaphore)  RelinquishSemaphore(semaphore)
58 #define MagickHuge  3.4e+38F
59 #define MaxRGB  QuantumRange  /* deprecated */
60 #define QuantumDepth  MAGICKCORE_QUANTUM_DEPTH
61 #define RunlengthEncodedCompression  RLECompression
62 #define Upscale(value)  ScaleCharToQuantum(value)
63 #define XDownscale(value)  ScaleShortToQuantum(value)
64 #define XUpscale(quantum)  ScaleQuantumToShort(quantum)
65 
66 typedef enum
67 {
68   UndefinedMagickLayerMethod
69 } MagickLayerMethod;
70 
71 typedef MagickOffsetType ExtendedSignedIntegralType;
72 typedef MagickSizeType ExtendedUnsignedIntegralType;
73 typedef MagickRealType ExtendedRationalType;
74 typedef struct _ViewInfo ViewInfo;
75 
76 typedef MagickBooleanType
77   (*MonitorHandler)(const char *,const MagickOffsetType,const MagickSizeType,
78     ExceptionInfo *);
79 
80 typedef struct _ImageAttribute
81 {
82   char
83     *key,
84     *value;
85 
86   MagickBooleanType
87     compression;
88 
89   struct _ImageAttribute
90     *previous,
91     *next;  /* deprecated */
92 } ImageAttribute;
93 
94 extern MagickExport CacheView
95   *CloseCacheView(CacheView *) magick_attribute((deprecated)),
96   *OpenCacheView(const Image *) magick_attribute((deprecated));
97 
98 extern MagickExport char
99   *AllocateString(const char *) magick_attribute((deprecated)),
100   *InterpretImageAttributes(const ImageInfo *,Image *,const char *)
101     magick_attribute((deprecated)),
102   *PostscriptGeometry(const char *) magick_attribute((deprecated)),
103   *TranslateText(const ImageInfo *,Image *,const char *)
104      magick_attribute((deprecated));
105 
106 extern MagickExport const ImageAttribute
107   *GetImageAttribute(const Image *,const char *),
108   *GetImageClippingPathAttribute(Image *) magick_attribute((deprecated)),
109   *GetNextImageAttribute(const Image *) magick_attribute((deprecated));
110 
111 extern MagickExport const IndexPacket
112   *AcquireCacheViewIndexes(const CacheView *) magick_attribute((deprecated)),
113   *AcquireIndexes(const Image *) magick_attribute((deprecated));
114 
115 extern MagickExport const PixelPacket
116   *AcquirePixels(const Image *) magick_attribute((deprecated)),
117   *AcquireCacheViewPixels(const CacheView *,const ssize_t,const ssize_t,
118     const size_t,const size_t,ExceptionInfo *)
119     magick_attribute((deprecated)),
120   *AcquireImagePixels(const Image *,const ssize_t,const ssize_t,const size_t,
121     const size_t,ExceptionInfo *) magick_attribute((deprecated));
122 
123 extern MagickExport FILE
124   *OpenMagickStream(const char *,const char *);
125 
126 extern MagickExport Image
127   *AllocateImage(const ImageInfo *) magick_attribute((deprecated)),
128   *AverageImages(const Image *,ExceptionInfo *),
129   *ExtractSubimageFromImage(Image *,const Image *,ExceptionInfo *)
130     magick_attribute((deprecated)),
131   *GetImageFromMagickRegistry(const char *,ssize_t *id,ExceptionInfo *)
132     magick_attribute((deprecated)),
133   *GetImageList(const Image *,const ssize_t,ExceptionInfo *)
134     magick_attribute((deprecated)),
135   *GetNextImage(const Image *) magick_attribute((deprecated)),
136   *GetPreviousImage(const Image *) magick_attribute((deprecated)),
137   *FlattenImages(Image *,ExceptionInfo *) magick_attribute((deprecated)),
138   *MaximumImages(const Image *,ExceptionInfo *),
139   *MedianFilterImage(const Image *,const double,ExceptionInfo *),
140   *ModeImage(const Image *,const double,ExceptionInfo *),
141   *MinimumImages(const Image *,ExceptionInfo *),
142   *MosaicImages(Image *,ExceptionInfo *) magick_attribute((deprecated)),
143   *PopImageList(Image **) magick_attribute((deprecated)),
144   *RadialBlurImage(const Image *,const double,ExceptionInfo *)
145     magick_attribute((deprecated)),
146   *RadialBlurImageChannel(const Image *,const ChannelType,const double,
147     ExceptionInfo *) magick_attribute((deprecated)),
148   *RecolorImage(const Image *,const size_t,const double *,ExceptionInfo *)
149     magick_attribute((deprecated)),
150   *ReduceNoiseImage(const Image *,const double,ExceptionInfo *),
151   *ShiftImageList(Image **) magick_attribute((deprecated)),
152   *SpliceImageList(Image *,const ssize_t,const size_t,const Image *,
153     ExceptionInfo *) magick_attribute((deprecated)),
154   *ZoomImage(const Image *,const size_t,const size_t,ExceptionInfo *)
155     magick_attribute((deprecated));
156 
157 extern MagickExport IndexPacket
158   *GetCacheViewIndexes(CacheView *) magick_attribute((deprecated)),
159   *GetIndexes(const Image *) magick_attribute((deprecated)),
160   ValidateColormapIndex(Image *,const size_t) magick_attribute((deprecated));
161 
162 extern MagickExport int
163   GetImageGeometry(Image *,const char *,const unsigned int,RectangleInfo *)
164     magick_attribute((deprecated)),
165   ParseImageGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *)
166     magick_attribute((deprecated)),
167   SystemCommand(const MagickBooleanType,const MagickBooleanType,const char *,
168     ExceptionInfo *) magick_attribute((deprecated));
169 
170 extern MagickExport MagickBooleanType
171   AcquireOneCacheViewPixel(const CacheView *,const ssize_t,const ssize_t,
172     PixelPacket *,ExceptionInfo *) magick_attribute((deprecated)),
173   AcquireOneCacheViewVirtualPixel(const CacheView *,const VirtualPixelMethod,
174     const ssize_t,const ssize_t,PixelPacket *,ExceptionInfo *)
175     magick_attribute((deprecated)),
176   AffinityImage(const QuantizeInfo *,Image *,const Image *)
177     magick_attribute((deprecated)),
178   AffinityImages(const QuantizeInfo *,Image *,const Image *)
179     magick_attribute((deprecated)),
180   AllocateImageColormap(Image *,const size_t)
181     magick_attribute((deprecated)),
182   ClipPathImage(Image *,const char *,const MagickBooleanType)
183     magick_attribute((deprecated)),
184   CloneImageAttributes(Image *,const Image *) magick_attribute((deprecated)),
185   ColorFloodfillImage(Image *,const DrawInfo *,const PixelPacket,const ssize_t,
186     const ssize_t,const PaintMethod) magick_attribute((deprecated)),
187   ConstituteComponentGenesis(void) magick_attribute((deprecated)),
188   DeleteImageAttribute(Image *,const char *) magick_attribute((deprecated)),
189   DeleteMagickRegistry(const ssize_t) magick_attribute((deprecated)),
190   DescribeImage(Image *,FILE *,const MagickBooleanType)
191     magick_attribute((deprecated)),
192   FormatImageAttribute(Image *,const char *,const char *,...)
193     magick_attribute((__format__ (__printf__,3,4)))
194     magick_attribute((deprecated)),
195   FormatImageAttributeList(Image *,const char *,const char *,va_list)
196     magick_attribute((__format__ (__printf__,3,0)))
197     magick_attribute((deprecated)),
198   FormatImagePropertyList(Image *,const char *,const char *,va_list)
199     magick_attribute((__format__ (__printf__,3,0))),
200   FuzzyColorCompare(const Image *,const PixelPacket *,const PixelPacket *)
201     magick_attribute((deprecated)),
202   FuzzyOpacityCompare(const Image *,const PixelPacket *,const PixelPacket *)
203     magick_attribute((deprecated)),
204   InitializeModuleList(ExceptionInfo *) magick_attribute((deprecated)),
205   IsMagickInstantiated(void) magick_attribute((deprecated)),
206   LevelImageColors(Image *,const ChannelType,const MagickPixelPacket *,
207     const MagickPixelPacket *, const MagickBooleanType)
208     magick_attribute((deprecated)),
209   LoadMimeLists(const char *,ExceptionInfo *) magick_attribute((deprecated)),
210   MagickMonitor(const char *,const MagickOffsetType,const MagickSizeType,
211     void *) magick_attribute((deprecated)),
212   MapImage(Image *,const Image *,const MagickBooleanType)
213     magick_attribute((deprecated)),
214   MapImages(Image *,const Image *,const MagickBooleanType)
215     magick_attribute((deprecated)),
216   MatteFloodfillImage(Image *,const PixelPacket,const Quantum,const ssize_t,
217     const ssize_t,const PaintMethod) magick_attribute((deprecated)),
218   OpaqueImage(Image *,const PixelPacket,const PixelPacket)
219     magick_attribute((deprecated)),
220   PaintFloodfillImage(Image *,const ChannelType,const MagickPixelPacket *,
221     const ssize_t,const ssize_t,const DrawInfo *,const PaintMethod)
222     magick_attribute((deprecated)),
223   PaintOpaqueImage(Image *,const MagickPixelPacket *,const MagickPixelPacket *)
224     magick_attribute((deprecated)),
225   PaintOpaqueImageChannel(Image *,const ChannelType,const MagickPixelPacket *,
226     const MagickPixelPacket *) magick_attribute((deprecated)),
227   PaintTransparentImage(Image *,const MagickPixelPacket *,const Quantum)
228     magick_attribute((deprecated)),
229   SetExceptionInfo(ExceptionInfo *,ExceptionType)
230     magick_attribute((deprecated)),
231   SetImageAttribute(Image *,const char *,const char *)
232     magick_attribute((deprecated)),
233   SyncCacheViewPixels(CacheView *) magick_attribute((deprecated)),
234   SyncImagePixels(Image *) magick_attribute((deprecated)),
235   TransparentImage(Image *,const PixelPacket,const Quantum)
236     magick_attribute((deprecated));
237 
238 extern MagickExport MagickPixelPacket
239   AcquireOneMagickPixel(const Image *,const ssize_t,const ssize_t,
240     ExceptionInfo *) magick_attribute((deprecated));
241 
242 extern MagickExport MonitorHandler
243   GetMonitorHandler(void) magick_attribute((deprecated)),
244   SetMonitorHandler(MonitorHandler) magick_attribute((deprecated));
245 
246 extern MagickExport MagickOffsetType
247   SizeBlob(Image *image) magick_attribute((deprecated));
248 
249 extern MagickExport MagickPixelPacket
250   InterpolatePixelColor(const Image *,CacheView *,const InterpolatePixelMethod,
251     const double,const double,ExceptionInfo *) magick_attribute((deprecated));
252 
253 extern MagickExport MagickStatusType
254   ParseSizeGeometry(const Image *,const char *,RectangleInfo *)
255     magick_attribute((deprecated));
256 
257 extern MagickExport PixelPacket
258   AcquireOnePixel(const Image *,const ssize_t,const ssize_t,ExceptionInfo *)
259     magick_attribute((deprecated)),
260   AcquireOneVirtualPixel(const Image *,const VirtualPixelMethod,const ssize_t,
261     const ssize_t,ExceptionInfo *) magick_attribute((deprecated)),
262   *GetCacheView(CacheView *,const ssize_t,const ssize_t,const size_t,
263     const size_t) magick_attribute((deprecated)),
264   *GetCacheViewPixels(CacheView *,const ssize_t,const ssize_t,const size_t,
265     const size_t) magick_attribute((deprecated)),
266   *GetImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
267     const size_t) magick_attribute((deprecated)),
268   GetOnePixel(Image *,const ssize_t,const ssize_t)
269     magick_attribute((deprecated)),
270   *GetPixels(const Image *) magick_attribute((deprecated)),
271   *SetCacheViewPixels(CacheView *,const ssize_t,const ssize_t,const size_t,
272     const size_t) magick_attribute((deprecated)),
273   *SetImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
274     const size_t) magick_attribute((deprecated));
275 
276 extern MagickExport MagickRealType
277   InversesRGBCompandor(const MagickRealType) magick_attribute((deprecated)),
278   sRGBCompandor(const MagickRealType) magick_attribute((deprecated));
279 
280 extern MagickExport size_t
281   GetImageListSize(const Image *) magick_attribute((deprecated)),
282   PopImagePixels(Image *,const QuantumType,unsigned char *)
283     magick_attribute((deprecated)),
284   PushImagePixels(Image *,const QuantumType,const unsigned char *)
285     magick_attribute((deprecated));
286 
287 extern MagickExport ssize_t
288   FormatMagickString(char *,const size_t,const char *,...)
289     magick_attribute((__format__ (__printf__,3,4)))
290     magick_attribute((deprecated)),
291   FormatMagickStringList(char *,const size_t,const char *,va_list)
292     magick_attribute((__format__ (__printf__,3,0))),
293   GetImageListIndex(const Image *) magick_attribute((deprecated)),
294   SetMagickRegistry(const RegistryType,const void *,const size_t,
295     ExceptionInfo *) magick_attribute((deprecated));
296 
297 extern MagickExport unsigned int
298   ChannelImage(Image *,const ChannelType) magick_attribute((deprecated)),
299   ChannelThresholdImage(Image *,const char *) magick_attribute((deprecated)),
300   DispatchImage(const Image *,const ssize_t,const ssize_t,const size_t,
301     const size_t,const char *,const StorageType,void *,ExceptionInfo *)
302     magick_attribute((deprecated)),
303   FuzzyColorMatch(const PixelPacket *,const PixelPacket *,const double)
304     magick_attribute((deprecated)),
305   GetNumberScenes(const Image *) magick_attribute((deprecated)),
306   GetMagickGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *)
307     magick_attribute((deprecated)),
308   IsSubimage(const char *,const unsigned int) magick_attribute((deprecated)),
309   PushImageList(Image **,const Image *,ExceptionInfo *)
310     magick_attribute((deprecated)),
311   QuantizationError(Image *) magick_attribute((deprecated)),
312   RandomChannelThresholdImage(Image *,const char *,const char *,
313     ExceptionInfo *) magick_attribute((deprecated)),
314   SetImageList(Image **,const Image *,const ssize_t,ExceptionInfo *)
315     magick_attribute((deprecated)),
316   TransformColorspace(Image *,const ColorspaceType)
317     magick_attribute((deprecated)),
318   ThresholdImage(Image *,const double) magick_attribute((deprecated)),
319   ThresholdImageChannel(Image *,const char *) magick_attribute((deprecated)),
320   UnshiftImageList(Image **,const Image *,ExceptionInfo *)
321     magick_attribute((deprecated));
322 
323 extern MagickExport void
324   *AcquireMemory(const size_t) magick_attribute((deprecated)),
325   AcquireSemaphoreInfo(SemaphoreInfo **) magick_attribute((deprecated)),
326   AllocateNextImage(const ImageInfo *,Image *) magick_attribute((deprecated)),
327   *CloneMemory(void *,const void *,const size_t) magick_attribute((deprecated)),
328   ConstituteComponentTerminus(void) magick_attribute((deprecated)),
329   DestroyConstitute(void),
330   DestroyImageAttributes(Image *) magick_attribute((deprecated)),
331   DestroyImages(Image *) magick_attribute((deprecated)),
332   DestroyMagick(void) magick_attribute((deprecated)),
333   DestroyMagickRegistry(void) magick_attribute((deprecated)),
334   *GetConfigureBlob(const char *,char *,size_t *,ExceptionInfo *)
335     magick_attribute((deprecated)),
336   GetExceptionInfo(ExceptionInfo *),
337   *GetMagickRegistry(const ssize_t,RegistryType *,size_t *,ExceptionInfo *)
338     magick_attribute((deprecated)),
339   GetTokenToken(const char *,const char **,char *),
340   IdentityAffine(AffineMatrix *) magick_attribute((deprecated)),
341   LiberateMemory(void **) magick_attribute((deprecated)),
342   LiberateSemaphoreInfo(SemaphoreInfo **) magick_attribute((deprecated)),
343   FormatString(char *,const char *,...)
344     magick_attribute((__format__ (__printf__,2,3)))
345     magick_attribute((deprecated)),
346   FormatStringList(char *,const char *,va_list)
347     magick_attribute((__format__ (__printf__,2,0)))
348     magick_attribute((deprecated)),
349   HSLTransform(const double,const double,const double,Quantum *,Quantum *,
350     Quantum *) magick_attribute((deprecated)),
351   InitializeMagick(const char *) magick_attribute((deprecated)),
352   MagickIncarnate(const char *) magick_attribute((deprecated)),
353   ReacquireMemory(void **,const size_t) magick_attribute((deprecated)),
354   RelinquishSemaphoreInfo(SemaphoreInfo *) magick_attribute((deprecated)),
355   ResetImageAttributeIterator(const Image *) magick_attribute((deprecated)),
356   SetCacheThreshold(const size_t) magick_attribute((deprecated)),
357   SetImage(Image *,const Quantum) magick_attribute((deprecated)),
358   Strip(char *) magick_attribute((deprecated)),
359   TemporaryFilename(char *) magick_attribute((deprecated)),
360   TransformHSL(const Quantum,const Quantum,const Quantum,double *,double *,
361     double *) magick_attribute((deprecated));
362 
363 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
364 extern MagickExport void
365   *CropImageToHBITMAP(Image *,const RectangleInfo *,ExceptionInfo *),
366   *ImageToHBITMAP(Image *,ExceptionInfo *);
367 #endif
368 
369 /*
370   Inline methods.
371 */
MagickEpsilonReciprocal(const double x)372 static inline double MagickEpsilonReciprocal(const double x)
373 {
374   double
375     sign;
376 
377   sign=x < 0.0 ? -1.0 : 1.0;
378   if ((sign*x) >= MagickEpsilon)
379     return(1.0/x);
380   return(sign/MagickEpsilon);
381 }
382 
PixelIntensityToQuantum(const Image * magick_restrict image,const PixelPacket * magick_restrict pixel)383 static inline Quantum PixelIntensityToQuantum(
384   const Image *magick_restrict image,const PixelPacket *magick_restrict pixel)
385 {
386   return(ClampToQuantum(GetPixelIntensity(image,pixel)));
387 }
388 
389 #endif
390 
391 #if defined(__cplusplus) || defined(c_plusplus)
392 }
393 #endif
394 
395 #endif
396