--- parser3/src/classes/image.C 2001/09/06 06:11:13 1.40 +++ parser3/src/classes/image.C 2001/09/15 15:42:08 1.40.4.1 @@ -5,9 +5,9 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: image.C,v 1.40 2001/09/06 06:11:13 parser Exp $ + $Id: image.C,v 1.40.4.1 2001/09/15 15:42:08 parser Exp $ */ -static const char *RCSId="$Id: image.C,v 1.40 2001/09/06 06:11:13 parser Exp $"; +static const char *RCSId="$Id: image.C,v 1.40.4.1 2001/09/15 15:42:08 parser Exp $"; /* jpegsize: gets the width and height (in pixels) of a jpeg file @@ -137,7 +137,7 @@ void measure_gif(Pool& pool, const Strin if(strncmp(head->type, "GIF", 3)!=0) PTHROW(0, 0, origin_string, - "not GIF file - signature not found"); + "not GIF file - wrong signature"); width=little_endian_to_int(head->width); height=little_endian_to_int(head->height); @@ -161,7 +161,7 @@ void measure_jpeg(Pool& pool, const Stri if(!(signature[0]==0xFF && signature[1]==0xD8)) PTHROW(0, 0, origin_string, - "not JPEG file - signature not found"); + "not JPEG file - wrong signature"); bool found=false; while(true) { @@ -356,8 +356,7 @@ static gdImage *load(Request& r, const S static void _load(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); - Value& vfile_name=params->as_no_junction(0, "file name must not be code"); - const String& file_name=vfile_name.as_string(); + const String& file_name=params->as_string(0, "file name must not be code"); gdImage& image=*load(r, method_name, file_name); int width=image.SX(); @@ -409,12 +408,24 @@ static void _line(Request& r, const Stri &method_name, "does not contain an image"); - image->Line( - params->as_int(0, r), - params->as_int(1, r), - params->as_int(2, r), - params->as_int(3, r), - image->Color(params->as_int(4, r))); + if(params->size()>5) { + // '*** * ' + const String& sline_style=params->as_string(5, "line style must not be code"); + + image->StyledLine( + params->as_int(0, r), + params->as_int(1, r), + params->as_int(2, r), + params->as_int(3, r), + image->Color(params->as_int(4, r)), + sline_style.size()?sline_style.cstr(String::UL_AS_IS):0); + } else + image->Line( + params->as_int(0, r), + params->as_int(1, r), + params->as_int(2, r), + params->as_int(3, r), + image->Color(params->as_int(4, r))); } static void _fill(Request& r, const String& method_name, MethodParams *params) { @@ -681,7 +692,7 @@ MImage::MImage(Pool& apool) : Methoded(a add_native_method("gif", Method::CT_DYNAMIC, _gif, 0, 0); // ^image.line(x0;y0;x1;y1;color) - add_native_method("line", Method::CT_DYNAMIC, _line, 5, 5); + add_native_method("line", Method::CT_DYNAMIC, _line, 5, 6); // ^image.fill(x;y;color) add_native_method("fill", Method::CT_DYNAMIC, _fill, 3, 3);