159 const char *map,
const StorageType storage,
const void *pixels,
177 assert(map != (
const char *) NULL);
178 assert(pixels != (
void *) NULL);
184 if (image == (
Image *) NULL)
185 return((
Image *) NULL);
197 for (i=0; i < (ssize_t) length; i++)
276 #if defined(__cplusplus) || defined(c_plusplus) 288 #if defined(__cplusplus) || defined(c_plusplus) 301 assert(image_info != (
ImageInfo *) NULL);
310 if (image != (
Image *) NULL)
363 assert(image_info != (
ImageInfo *) NULL);
372 (int) image_info->
scene,ping_filename,exception);
398 for (scene=(ssize_t) read_info->
scene; scene < (ssize_t) extent; scene++)
401 (int) scene,read_info->
filename,exception);
403 if (image == (
Image *) NULL)
449 "NotAuthorized",
"`%s'",coder);
461 memset(constitute_info,0,
sizeof(*constitute_info));
474 if (option != (
const char *) NULL)
482 constitute_info->
delay=floor(geometry_info.
rho+0.5);
485 geometry_info.
sigma+0.5));
496 orientation=(
const char *) NULL;
500 if (orientation != (
const char *) NULL)
506 if ((orientation == (
const char *) NULL) &&
510 if (orientation != (
const char *) NULL)
529 resolution_x=(
const char *) NULL;
530 resolution_y=(
const char *) NULL;
531 resolution_units=(
const char *) NULL;
537 if ((resolution_x != (
const char *) NULL) &&
538 (resolution_y != (
const char *) NULL))
542 if ((resolution_x == (
const char *) NULL) &&
543 (resolution_y == (
const char *) NULL) &&
548 if ((resolution_x != (
const char *) NULL) &&
549 (resolution_y != (
const char *) NULL))
556 if ((resolution_x != (
const char *) NULL) &&
557 (resolution_y != (
const char *) NULL))
566 geometry_info.
sigma=1.0;
568 if (geometry_info.
sigma != 0)
570 if (strchr(resolution_x,
',') != (
char *) NULL)
573 geometry_info.
sigma=1.0;
575 if (geometry_info.
sigma != 0)
577 if (strchr(resolution_y,
',') != (
char *) NULL)
579 if (resolution_units != (
char *) NULL)
583 if (option_type >= 0)
637 assert(image_info != (
ImageInfo *) NULL);
639 assert(image_info->
filename != (
char *) NULL);
673 if ((magick_info != (
const MagickInfo *) NULL) &&
684 return((
Image *) NULL);
698 return((
Image *) NULL);
727 image=(
Image *) NULL;
729 image=decoder(read_info,exception);
744 return((
Image *) NULL);
750 if (image == (
Image *) NULL)
753 return((
Image *) NULL);
780 return((
Image *) NULL);
788 image=(
Image *) NULL;
790 image=(decoder)(read_info,exception);
798 if (image != (
Image *) NULL)
801 if (image == (
Image *) NULL)
808 "Coder (%s) generated an image despite an error (%d), " 819 if (clones != (
Image *) NULL)
836 *source_date_epoch = (
const char *) NULL;
843 if ((*magick_path ==
'\0') && (*next->
magick ==
'\0'))
863 if (constitute_info.
caption != (
const char *) NULL)
866 constitute_info.
caption,exception);
870 if (constitute_info.
comment != (
const char *) NULL)
873 constitute_info.
comment,exception);
877 if (constitute_info.
label != (
const char *) NULL)
880 constitute_info.
label,exception);
886 if ((read_info->
extract != (
char *) NULL) &&
905 crop_image=
CropImage(next,&geometry,exception);
906 if (crop_image != (
Image *) NULL)
919 if (size_image != (
Image *) NULL)
932 source_date_epoch=getenv(
"SOURCE_DATE_EPOCH");
935 if (source_date_epoch == (
const char *) NULL)
941 sizeof(timestamp),timestamp);
944 sizeof(timestamp),timestamp);
965 if (constitute_info.
dispose != (
const char *) NULL)
972 if (option_type >= 0)
1028 assert(image_info != (
ImageInfo *) NULL);
1039 (int) read_info->
scene,read_filename,exception);
1061 scene=(ssize_t) read_info->
scene;
1062 for ( ; scene < (ssize_t) extent; scene++)
1065 read_filename,(int) scene,read_info->
filename,exception);
1067 if (image == (
Image *) NULL)
1133 for (p=content; (*p !=
',') && (*p !=
'\0'); p++) ;
1147 for (p=content; (*p !=
'/') && (*p !=
'\0'); p++) ;
1161 (void) strcpy(read_info->
filename,
"data.");
1167 image=
BlobToImage(read_info,blob,length,exception);
1235 assert(image_info != (
ImageInfo *) NULL);
1237 assert(image != (
Image *) NULL);
1248 if (*write_info->
magick ==
'\0')
1260 if (magick_info != (
const MagickInfo *) NULL)
1279 (write_info->
page == (
char *) NULL) &&
1295 write_info->
magick,exception);
1303 if ((magick_info != (
const MagickInfo *) NULL) &&
1338 status=encoder(write_info,image,exception);
1354 write_info->
magick,exception);
1380 if (*extension !=
'\0')
1395 "`%s'",write_info->
magick);
1407 status=encoder(write_info,image,exception);
1477 #define WriteImageTag "Write/Image" 1503 assert(image_info != (
const ImageInfo *) NULL);
1505 assert(images != (
Image *) NULL);
1511 *write_info->
magick=
'\0';
1513 if (filename != (
const char *) NULL)
1522 if (*write_info->
magick ==
'\0')
1531 if (next == (
Image *) NULL)
1541 i=(ssize_t) images->
scene;
1543 p->
scene=(
size_t) i++;
1556 if (number_images != 1)
1560 if (number_images != 1)
1564 if (number_images != 1)
1566 #if defined(MAGICKCORE_OPENMP_SUPPORT)
MagickExport Image * ResizeImage(const Image *image, const size_t columns, const size_t rows, const FilterType filter, ExceptionInfo *exception)
MagickExport Image * CloneImages(const Image *images, const char *scenes, ExceptionInfo *exception)
MagickExport MagickBooleanType IsStringFalse(const char *value)
char magick[MagickPathExtent]
MagickExport MagickBooleanType GetDelegateThreadSupport(const DelegateInfo *delegate_info)
MagickExport MagickBooleanType IsRightsAuthorized(const PolicyDomain domain, const PolicyRights rights, const char *pattern)
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
MagickExport ssize_t ParseCommandOption(const CommandOption option, const MagickBooleanType list, const char *options)
MagickExport MagickBooleanType GetBlobError(const Image *image)
MagickExport Image * PingImage(const ImageInfo *image_info, ExceptionInfo *exception)
MagickExport MagickStatusType ParseAbsoluteGeometry(const char *geometry, RectangleInfo *region_info)
MagickExport MagickBooleanType IdentifyImage(Image *image, FILE *file, const MagickBooleanType verbose, ExceptionInfo *exception)
MagickExport MagickBooleanType GetMagickEncoderThreadSupport(const MagickInfo *magick_info)
MagickExport const DelegateInfo * GetDelegateInfo(const char *decode, const char *encode, ExceptionInfo *exception)
MagickExport Image * ReadInlineImage(const ImageInfo *image_info, const char *content, ExceptionInfo *exception)
MagickExport ExceptionInfo * AcquireExceptionInfo(void)
static MagickBooleanType IsCoderAuthorized(const char *coder, const PolicyRights rights, ExceptionInfo *exception)
MagickExport ssize_t GetDelegateMode(const DelegateInfo *delegate_info)
MagickExport size_t CopyMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
MagickBooleanType EncodeImageHandler(const ImageInfo *, Image *, ExceptionInfo *)
char magick[MagickPathExtent]
MagickExport MagickBooleanType ImageToFile(Image *image, char *filename, ExceptionInfo *exception)
MagickBooleanType verbose
static long StringToLong(const char *magick_restrict value)
MagickExport const char * GetImageOption(const ImageInfo *image_info, const char *option)
MagickExport MagickBooleanType AcquireUniqueFilename(char *path)
MagickExport MagickBooleanType SetImageOption(ImageInfo *image_info, const char *option, const char *value)
MagickExport Image * GetPreviousImageInList(const Image *images)
SemaphoreInfo * semaphore
MagickExport MagickBooleanType GetMagickRawSupport(const MagickInfo *magick_info)
MagickExport const struct stat * GetBlobProperties(const Image *)
MagickExport Image * PingImages(ImageInfo *image_info, const char *filename, ExceptionInfo *exception)
#define MagickCoreSignature
MagickExport MagickBooleanType ImportImagePixels(Image *image, const ssize_t x, const ssize_t y, const size_t width, const size_t height, const char *map, const StorageType type, const void *pixels, ExceptionInfo *exception)
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
MagickExport MagickBooleanType GetMagickDecoderSeekableStream(const MagickInfo *magick_info)
MagickExport Image * GetFirstImageInList(const Image *images)
SemaphoreInfo * semaphore
MagickExport Image * BlobToImage(const ImageInfo *image_info, const void *blob, const size_t length, ExceptionInfo *exception)
MagickExport void GetPathComponent(const char *path, PathType type, char *component)
MagickExport Image * NewImageList(void)
unsigned int MagickStatusType
MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info, Image *image, ExceptionInfo *exception)
static ssize_t CastDoubleToLong(const double x)
MagickExport unsigned char * Base64Decode(const char *source, size_t *length)
char filename[MagickPathExtent]
MagickExport int LocaleNCompare(const char *p, const char *q, const size_t length)
MagickExport MagickBooleanType RelinquishUniqueFileResource(const char *path)
MagickExport MagickBooleanType CloseBlob(Image *)
MagickExport MagickBooleanType SetImageProperty(Image *image, const char *property, const char *value, ExceptionInfo *exception)
MagickExport const StringInfo * GetImageProfile(const Image *image, const char *name)
static void InitializeConstituteInfo(const ImageInfo *image_info, ConstituteInfo *constitute_info)
MagickExport MagickBooleanType IsStringTrue(const char *value)
MagickExport MagickBooleanType IsEventLogging(void)
MagickExport MagickBooleanType IsBlobTemporary(const Image *image)
#define ThrowFileException(exception, severity, tag, context)
static size_t PingStream(const Image *magick_unused(image), const void *magick_unused(pixels), const size_t columns)
MagickExport Image * ReadImage(const ImageInfo *image_info, ExceptionInfo *exception)
MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, const unsigned int frames, ExceptionInfo *exception)
#define ThrowReaderException(severity, tag)
char magick_filename[MagickPathExtent]
MagickExport DecodeImageHandler * GetImageDecoder(const MagickInfo *magick_info)
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
MagickExport MagickBooleanType IsPathAccessible(const char *path)
MagickExport const MagickInfo * GetMagickInfo(const char *name, ExceptionInfo *exception)
MagickExport Image * AcquireImage(const ImageInfo *image_info, ExceptionInfo *exception)
MagickExport MagickBooleanType OpenBlob(const ImageInfo *, Image *, const BlobMode, ExceptionInfo *)
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
MagickExport void ResetTimer(TimerInfo *time_info)
MagickExport EncodeImageHandler * GetImageEncoder(const MagickInfo *magick_info)
MagickExport Image * ReadStream(const ImageInfo *image_info, StreamHandler stream, ExceptionInfo *exception)
MagickExport MagickProgressMonitor SetImageProgressMonitor(Image *image, const MagickProgressMonitor progress_monitor, void *client_data)
MagickExport Image * DestroyImageList(Image *images)
MagickExport MagickBooleanType GetMagickEndianSupport(const MagickInfo *magick_info)
static void SyncResolutionFromProperties(Image *image, ConstituteInfo *constitute_info, ExceptionInfo *exception)
MagickExport size_t InterpretImageFilename(const ImageInfo *image_info, Image *image, const char *format, int value, char *filename, ExceptionInfo *exception)
MagickExport MagickBooleanType IsBlobSeekable(const Image *image)
MagickExport MagickBooleanType SetImageExtent(Image *image, const size_t columns, const size_t rows, ExceptionInfo *exception)
MagickExport Image * ReadImages(ImageInfo *image_info, const char *filename, ExceptionInfo *exception)
MagickExport int LocaleCompare(const char *p, const char *q)
MagickExport MagickBooleanType GetMagickDecoderThreadSupport(const MagickInfo *magick_info)
char filename[MagickPathExtent]
#define GetMagickModule()
MagickStatusType delay_flags
MagickExport Image * ConstituteImage(const size_t columns, const size_t rows, const char *map, const StorageType storage, const void *pixels, ExceptionInfo *exception)
MagickExport MagickBooleanType GetMagickEncoderSeekableStream(const MagickInfo *magick_info)
MagickExport char * InterpretImageProperties(ImageInfo *image_info, Image *image, const char *embed_text, ExceptionInfo *exception)
MagickExport MagickBooleanType ResetImagePixels(Image *image, ExceptionInfo *exception)
MagickExport ImageInfo * DestroyImageInfo(ImageInfo *image_info)
MagickExport MagickBooleanType IsTaintImage(const Image *image)
MagickExport void ReplaceImageInList(Image **images, Image *replace)
MagickExport Image * GetNextImageInList(const Image *images)
MagickExport char * DestroyString(char *string)
MagickExport MagickBooleanType DeleteImageProperty(Image *image, const char *property)
MagickExport const char * GetImageProperty(const Image *image, const char *property, ExceptionInfo *exception)
static void SyncOrientationFromProperties(Image *image, ConstituteInfo *constitute_info, ExceptionInfo *exception)
MagickExport ImageInfo * CloneImageInfo(const ImageInfo *image_info)
MagickExport MagickStatusType ParseGeometry(const char *geometry, GeometryInfo *geometry_info)
MagickExport void AppendImageToList(Image **images, const Image *append)
MagickBooleanType sync_from_tiff
MagickExport void SetGeometry(const Image *image, RectangleInfo *geometry)
MagickPrivate MagickBooleanType SyncImageProfiles(Image *)
struct _ConstituteInfo ConstituteInfo
MagickExport void * RelinquishMagickMemory(void *memory)
#define magick_unreferenced(x)
MagickExport MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info, const MagickProgressMonitor progress_monitor, void *client_data)
MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info, Image *image, const char *decode, const char *encode, ExceptionInfo *exception)
OrientationType orientation
MagickExport ssize_t FormatMagickTime(const time_t time, const size_t length, char *timestamp)
MagickExport MagickBooleanType IsSceneGeometry(const char *geometry, const MagickBooleanType pedantic)
MagickExport size_t GetImageListLength(const Image *images)
#define ThrowWriterException(severity, tag)
MagickBooleanType sync_from_exif
MagickExport Image * DestroyImage(Image *image)
ColorspaceType colorspace
MagickExport MagickStatusType ParseRegionGeometry(const Image *image, const char *geometry, RectangleInfo *region_info, ExceptionInfo *exception)
MagickExport void DisassociateImageStream(Image *image)
size_t(* StreamHandler)(const Image *, const void *, const size_t)
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
MagickBooleanType temporary
MagickExport ExceptionInfo * DestroyExceptionInfo(ExceptionInfo *exception)
MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info, Image *images, const char *filename, ExceptionInfo *exception)
MagickExport void InheritException(ExceptionInfo *exception, const ExceptionInfo *relative)
Image * DecodeImageHandler(const ImageInfo *, ExceptionInfo *)