| <?php |
| ######################################################################################################### |
| # Aastra XML API Classes - Aastra XML API Classes - AastraIPPhoneGDImage |
| # Copyright Aastra Telecom 2007-2010 |
| # |
| # Firmware 2.0 or better |
| # |
| # AastraIPPhoneGDImage for AastraIPPhoneImageScreen and AastraIPPhoneImageScreen. |
| # |
| # php engine needs GD extensions |
| # ------------------------------ |
| # |
| # Public methods |
| # |
| # drawttftext(fontsize,angle,x,y,text,colorIndex,fontfile) |
| # Writes text to the image using TrueType fonts |
| # fontsize The font size. Depending on your version of GD, this should be specified as the pixel |
| # size (GD1) or point size (GD2) |
| # angle The angle in degrees, with 0 degrees being left-to-right reading text. Higher values |
| # represent a counter-clockwise rotation. For example, a value of 90 would result in |
| # bottom-to-top reading text. |
| # x,y The coordinates given by x and y will define the basepoint of the first character |
| # (roughly the lower-left corner of the character). |
| # colorIndex 0=White 1=Black |
| # fontfile Location and name of the ttf file to use |
| # see php imagettftext() for more details |
| # |
| # drawtext(fontsize,x,y,text,colorIndex) |
| # Writes text to the image using built-in font |
| # fontsize The font size. From 1 to 5 |
| # x,y The coordinates given by x and y will define the basepoint of the first character |
| # (roughly the lower-left corner of the character). |
| # colorIndex 0=White 1=Black |
| # see php imagestring() for more details |
| # |
| # rectangle(x1,y1,x2,y2,colorIndex,filled) |
| # Creates a rectangle starting at the specified coordinates. |
| # x1,y1 Upper left x,y coordinate. 0,0 is the top left corner of the image. |
| # x2,y2 Bottom right x,y coordinate |
| # colorIndex 0=White 1=Black |
| # filled Boolean, optional (default if False) |
| # see php imagerectangle() and imagefilledrectangle() for more details |
| # |
| # ellipse(cx,cy,width,height,colorIndex,filled) |
| # Draws an ellipse centered at the specified coordinates. |
| # cx,cy x-coordinate and y-coordinate of the center |
| # width the ellipse width |
| # height the ellipse height |
| # colorIndex 0=White 1=Black |
| # filled Boolean, optional (default if False) |
| # see php imageellipse() and imagefilledellipse() for more details |
| # |
| # line(x1,y1,x2,y2,colorIndex) |
| # Draws a line |
| # x1,y1 x,y coordinates for the first point |
| # x2,y2 x,y coordinates for the second point |
| # colorIndex 0=White 1=Black |
| # see php imageline() for more details |
| # |
| # setGDImage(image) |
| # Imports an externally generated GD image |
| # image GD image to import |
| # |
| # getGDImage() |
| # Exports the current GD image |
| # |
| # setFontPath(fontpath) |
| # Set directory path for the fonts to use |
| # fontpath Directory for the ttf fonts |
| # Default value |
| # Windows based platform C:\Windows\Fonts |
| # Linux based platform ../fonts |
| # |
| # Example 1 |
| # require_once('AastraIPPhoneGDImage.class.php'); |
| # $PhoneImageGD = new AastraIPPhoneGDImage(); |
| # $time = strftime("%H:%M"); |
| # $PhoneImageGD->drawttftext(30, 0, 10, 39, $time, 1,'Ni7seg.ttf'); |
| # |
| # Example 2 |
| # require_once('AastraIPPhoneGDImage.class.php'); |
| # $PhoneImageGD = new AastraIPPhoneGDImage(); |
| # $utf8text = "东丝丞丟丸"; |
| # $PhoneImageGD->drawttftext(20, 0, 5, 35, $utf8text, 1,'arialuni.ttf'); |
| # |
| ######################################################################################################## |
| |
| ######################################################################################################## |
| class AastraIPPhoneGDImage |
| { |
| var $_img; |
| var $_white; |
| var $_black; |
| var $_blackNoAntiAliasing; |
| var $_font; |
| var $_fontpath; |
| |
| function AastraIPPhoneGDImage() |
| { |
| # create the actual image |
| $this->_img=imagecreate(144, 40); |
| |
| # define black and white |
| $this->_white = imagecolorallocate($this->_img, 255, 255, 255); |
| $this->_black = imagecolorallocate($this->_img, 0, 0, 0); |
| |
| # Black and White only so disable anti-aliasing |
| $this->_black = $this->_black * -1; |
| $this->_white = $this->_white * -1; |
| |
| # define a default font path |
| $os = strtolower(PHP_OS); |
| if(strpos($os, "win") === false) $this->_fontpath='../fonts'; |
| else $this->_fontpath='C:\Windows\Fonts'; |
| putenv('GDFONTPATH='.$this->_fontpath); |
| } |
| |
| function importFromPng($file,$x,$y) |
| { |
| $image=@imagecreatefrompng($file); |
| imagecopy($this->_img,$image,$x,$y,0,0,imagesx($image),imagesy($image)); |
| } |
| |
| function setFontPath($fontpath) |
| { |
| $this->_fontpath=$fontpath; |
| putenv('GDFONTPATH='.$this->_fontpath); |
| } |
| |
| |
| function drawttftext($size, $angle, $x, $y, $text, $colorIndex, $font) |
| { |
| imagettftext($this->_img, $size, $angle, $x, $y, $this->getColor($colorIndex), $font, $text); |
| } |
| |
| function drawtext($size, $x, $y, $text, $colorIndex) |
| { |
| imagestring($this->_img, $size, $x, $y, $text, $this->getColor($colorIndex)); |
| } |
| |
| function setGDImage($image) |
| { |
| $this->_img=$image; |
| } |
| |
| function getGDImage() |
| { |
| return $this->_img; |
| } |
| |
| function rectangle($x1, $y1, $x2, $y2, $colorIndex, $filled=False) |
| { |
| if($filled) imagefilledrectangle($this->_img, $x1, $y1, $x2, $y2, $this->getColor($colorIndex)); |
| else imagerectangle($this->_img, $x1, $y1, $x2, $y2, $this->getColor($colorIndex)); |
| } |
| |
| function ellipse($cx, $cy, $width, $height, $colorIndex, $filled=False) |
| { |
| if($filled) imagefilledellipse($this->_img, $cx, $cy, $width, $height, $this->getColor($colorIndex)); |
| else imageellipse($this->_img, $cx, $cy, $width, $height, $this->getColor($colorIndex)); |
| } |
| |
| function line($x1, $y1, $x2, $y2, $colorIndex, $dashed=False) |
| { |
| if(!$dashed) imageline($this->_img, $x1, $y1, $x2, $y2, $this->getColor($colorIndex)); |
| else |
| { |
| $style = array($this->_black, $this->_white); |
| imagesetstyle($this->_img, $style); |
| imageline($this->_img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED); |
| } |
| } |
| |
| function getColor($index) |
| { |
| if ($index == 0) return $this->_white; else return $this->_black; |
| } |
| } |
| ?> |