Select Git revision
module_support.c
any.c 3.82 KiB
/* $Id: any.c,v 1.10 1999/05/28 13:30:51 mirar Exp $ */
/*
**! module Image
**! note
**! $Id: any.c,v 1.10 1999/05/28 13:30:51 mirar Exp $
**! submodule ANY
**!
**! This method calls the other decoding methods
**! and has some heuristics for what type of image
**! this is.
**!
**! Methods:
**! <ref>decode</ref>, <ref>decode_alpha</ref>,
**! <ref>_decode</ref>
**!
**! see also: Image
**!
*/
#include "global.h"
#include <math.h>
#include <ctype.h>
#include "stralloc.h"
RCSID("$Id: any.c,v 1.10 1999/05/28 13:30:51 mirar Exp $");
#include "pike_macros.h"
#include "operators.h"
#include "builtin_functions.h"
#include "object.h"
#include "constants.h"
#include "interpret.h"
#include "svalue.h"
#include "threads.h"
#include "array.h"
#include "error.h"
#include "threads.h"
#include "image.h"
void image_gif__decode(INT32 args);
void image_pnm_decode(INT32 args);
void image_xwd__decode(INT32 args);
/*
**! method mapping _decode(string data)
**! method object decode(string data)
**! method object decode_alpha(string data)
**! Tries heuristics to find the correct method
**! of decoding the data, then calls that method.
**!
**! The result of _decode() is a mapping that contains
**! <pre>
**! "type":image data type (ie, "image/jpeg" or similar)
**! "image":the image object,
**! "alpha":the alpha channel or 0 if N/A
**! </pre>
**!
**! note
**! Throws upon failure.
*/
void image_any__decode(INT32 args)
{
if (args!=1 || sp[-args].type!=T_STRING)
error("Image.ANY.decode: illegal arguments\n");
if (sp[-args].u.string->len<4)
error("Image.ANY.decode: too short string\n");