diff --git a/.gitattributes b/.gitattributes index d8fb2c4ac07090dae4adc2207151fd72e1b3b0fe..ecca60cc6b4219136645e8f0492b08273c87c8ea 100644 --- a/.gitattributes +++ b/.gitattributes @@ -80,6 +80,7 @@ testfont binary /lib/modules/Stdio.pmod/Terminfo.pmod foreign_ident /lib/modules/Stdio.pmod/module.pmod foreign_ident /lib/modules/Yabu.pmod/module.pmod foreign_ident +/lib/modules/_Image.pmod/module.pmod foreign_ident /lib/modules/error.pmod foreign_ident /man/hilfe.1 foreign_ident /man/pike.1 foreign_ident diff --git a/lib/modules/_Image.pmod/module.pmod b/lib/modules/_Image.pmod/module.pmod new file mode 100644 index 0000000000000000000000000000000000000000..d73995b240fe8f81d08d7cf8534598010e885691 --- /dev/null +++ b/lib/modules/_Image.pmod/module.pmod @@ -0,0 +1,47 @@ +//! module Image +//! $Id: module.pmod,v 1.1 1999/05/28 12:40:11 mirar Exp $ + + +//! method object(Image.Image) load() +//! method object(Image.Image) load(object file) +//! method object(Image.Image) load(string filename) +//! method object(Image.Layer) load_layer() +//! method object(Image.Layer) load_layer(object file) +//! method object(Image.Layer) load_layer(string filename) +//! method mapping _load() +//! method mapping _load(object file) +//! method mapping _load(string filename) +//! Helper function to load an image from a file. +//! If no filename is given, Stdio.stdin is used. +//! The result is the same as from the decode functions +//! in <ref>Image.ANY</ref>. +//! note: +//! All data is read, ie nothing happens until the file is closed. +//! Throws upon error. + +mapping _load(void|object|string file) +{ + if (!file) file=Stdio.stdin; + else if (stringp(file)) + { + object f=Stdio.stdin(); + if (!f->open(file,"r")) + error("Image._load: Can't open %O for input.\n",file); + file=f; + } + return Image.ANY._decode(file->read()); +} + +object(Image.Layer) load_layer(void|object|string file) +{ + mapping m=_load(file); + if (m->alpha) + return Image.Layer( (["image":m->image,"alpha":m->alpha]) ); + else + return Image.Layer( (["image":m->image]) ); +} + +object(Image.Image) load(void|object|string file) +{ + return _load(file)->image; +}