/** * Create the canvas. * * Parameters available: * * 'width' The width of the graph on the canvas * * 'height' The height of the graph on the canvas * * 'left' The left offset of the graph on the canvas * * 'top' The top offset of the graph on the canvas * * 'usemap' Initialize an image map * * @param array $params Parameter array * @abstract */ function Image_Canvas_WithMap($params) { parent::Image_Canvas($params); if (isset($params['usemap']) && $params['usemap'] === true) { $this->_imageMap =& Image_Canvas::factory('ImageMap', array('left' => $this->_left, 'top' => $this->_top, 'width' => $this->_width, 'height' => $this->_height)); } }
/** * Creates the SWF movie object * * Parameters available: * * 'width' The width of the graph * 'height' The height of the graph * 'version' The flash version, supports up to version 6 * 'background' An array with the background color, e.g. * array('red' => 255, * 'green' => 0, * 'blue' => 0) * Either integers between 0 and 255 or hexadecimals * between 0x00 and 0xFF * * @param array $params Parameter array * * @return Image_Canvas_SWF */ function Image_Canvas_SWF($params) { parent::Image_Canvas($params); $this->_reset(); $version = isset($params['version']) && $params['version'] <= 6 ? $params['version'] : $this->_version; $this->_canvas = new SWFMovie($version); $this->_canvas->setDimension($this->_width, $this->_height); if (isset($params['background'])) { $this->setBackground($params['background']); } }
/** * Create the PDF canvas. * * Parameters available: * * 'page' Specify the page/paper format for the graph's page, available * formats are: A0, A1, A2, A3, A4, A5, A6, B5, letter, legal, ledger, * 11x17, cd_front, inlay, inlay_nosides * * 'align' Alignment of the graph on the page, available options are: * topleft, topcenter, topright, leftcenter, center, rightcenter, * leftbottom, centerbottom, rightbottom * * 'orientation' Specifies the paper orientation, default is 'portrait' and * 'landscape' is also supported. * * 'creator' The creator tag of the PDF/graph * * 'author' The author tag of the PDF/graph * * 'title' The title tag of the PDF/graph * * 'width' The width of the graph on the page * * 'height' The height of the graph on the page * * 'left' The left offset of the graph on the page * * 'top' The top offset of the graph on the page * * 'filename' The PDF file to open/add page to, using 'filename' requires * the commercial version of PDFlib (http://www.pdflib.com/), this has for * obvious ($ 450) reasons not been tested * * 'pdf' An existing PDFlib PDF document to add the page to * * 'add_page' (true/false) Used together with 'pdf', to specify whether the * canvas should add a new graph page (true) or create the graph on the * current page (false), default is 'true' * * The 'page' and 'width' & 'height' can be mutually omitted, if 'page' is * omitted the page is created using dimensions of width x height, and if * width and height are omitted the page dimensions are used for the graph. * * If 'pdf' is specified, 'filename', 'creator', 'author' and 'title' has no * effect. * * 'left' and 'top' are overridden by 'align' * * It is required either to specify 'width' & 'height' or 'page'. * * The PDF format/PDFlib has some limitations on the capabilities, which * means some functionality available using other canvass (fx. alpha * blending and gradient fills) are not supported with PDF (see Canvas.txt * in the docs/ folder for further details) * * @param array $param Parameter array */ function Image_Canvas_PDF($param) { if (isset($param['page'])) { switch (strtoupper($param['page'])) { case 'A0': $this->_pageWidth = 2380; $this->_pageHeight = 3368; break; case 'A1': $this->_pageWidth = 1684; $this->_pageHeight = 2380; break; case 'A2': $this->_pageWidth = 1190; $this->_pageHeight = 1684; break; case 'A3': $this->_pageWidth = 842; $this->_pageHeight = 1190; break; case 'A4': $this->_pageWidth = 595; $this->_pageHeight = 842; break; case 'A5': $this->_pageWidth = 421; $this->_pageHeight = 595; break; case 'A6': $this->_pageWidth = 297; $this->_pageHeight = 421; break; case 'B5': $this->_pageWidth = 501; $this->_pageHeight = 709; break; case 'LETTER': $this->_pageWidth = 612; $this->_pageHeight = 792; break; case 'LEGAL': $this->_pageWidth = 612; $this->_pageHeight = 1008; break; case 'LEDGER': $this->_pageWidth = 1224; $this->_pageHeight = 792; break; case '11X17': $this->_pageWidth = 792; $this->_pageHeight = 1224; break; case 'CD_FRONT': $this->_pageWidth = 337; $this->_pageHeight = 337; break; case 'INLAY': $this->_pageWidth = 425; $this->_pageHeight = 332; break; case 'INLAY_NOSIDES': $this->_pageWidth = 390; $this->_pageHeight = 332; break; } } if (isset($param['orientation']) && strtoupper($param['orientation']) == 'LANDSCAPE') { $w = $this->_pageWidth; $this->_pageWidth = $this->_pageHeight; $this->_pageHeight = $w; } parent::Image_Canvas($param); if (!$this->_pageWidth) { $this->_pageWidth = $this->_width; } elseif (!$this->_width) { $this->_width = $this->_pageWidth; } if (!$this->_pageHeight) { $this->_pageHeight = $this->_height; } elseif (!$this->_height) { $this->_height = $this->_pageHeight; } $this->_width = min($this->_width, $this->_pageWidth); $this->_height = min($this->_height, $this->_pageHeight); if (isset($param['align']) && ($this->_width != $this->_pageWidth || $this->_height != $this->_pageHeight)) { switch (strtoupper($param['align'])) { case 'TOPLEFT': $this->_top = 0; $this->_left = 0; break; case 'TOPCENTER': $this->_top = 0; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'TOPRIGHT': $this->_top = 0; $this->_left = $this->_pageWidth - $this->_width; break; case 'LEFTCENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = 0; break; case 'CENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'RIGHTCENTER': $this->_top = ($this->_pageHeight - $this->_height) / 2; $this->_left = $this->_pageWidth - $this->_width; break; case 'LEFTBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = 0; break; case 'CENTERBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = ($this->_pageWidth - $this->_width) / 2; break; case 'RIGHTBOTTOM': $this->_top = $this->_pageHeight - $this->_height; $this->_left = $this->_pageWidth - $this->_width; break; } } $this->_pdflib = $this->_version(); $addPage = true; if (isset($param['pdf']) && is_resource($param['pdf'])) { $this->_pdf =& $param['pdf']; if (isset($param['add_page']) && $param['add_page'] === false) { $addPage = false; } } else { $this->_pdf = pdf_new(); if (isset($param['filename'])) { pdf_open_file($this->_pdf, $param['filename']); } else { pdf_open_file($this->_pdf, ''); } pdf_set_parameter($this->_pdf, 'warning', 'true'); pdf_set_info($this->_pdf, 'Creator', isset($param['creator']) ? $param['creator'] : 'PEAR::Image_Canvas'); pdf_set_info($this->_pdf, 'Author', isset($param['author']) ? $param['author'] : 'Jesper Veggerby'); pdf_set_info($this->_pdf, 'Title', isset($param['title']) ? $param['title'] : 'Image_Canvas'); } if ($addPage) { pdf_begin_page($this->_pdf, $this->_pageWidth, $this->_pageHeight); } $this->_reset(); }
/** * Create the SVG canvas. * * Parameters available: * * 'width' The width of the graph * * 'height' The height of the graph * * 'encoding' The encoding of the SVG document * * @param array $param Parameter array */ function Image_Canvas_SVG($params) { parent::Image_Canvas($params); $this->_reset(); if (isset($params['encoding'])) { $this->_encoding = $params['encoding']; } }
/** * Create the SVG canvas. * * Parameters available: * * 'width' The width of the graph * * 'height' The height of the graph * * @param array $param Parameter array */ function Image_Canvas_SVG($param) { parent::Image_Canvas($param); $this->_reset(); }