14050_cleaning_t3lib_arraybrowser
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_stdgraphic.php
index 10c7003..eb39538 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 1999-2010 Kasper Skaarhoj (kasperYYYY@typo3.com)
+*  (c) 1999-2010 Kasper Skårhøj (kasperYYYY@typo3.com)
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -28,9 +28,9 @@
  * Standard graphical functions
  *
  * $Id$
- * Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj
+ * Revised for TYPO3 3.6 July/2003 by Kasper Skårhøj
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
+ * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 /**
  * [CLASS/FUNCTION INDEX of SCRIPT]
  * With TYPO3 4.4 GDlib 1.x support was dropped, also an option from config_default.php:
  * $TYPO3_CONF_VARS['GFX']['gdlib_2'] = 0,     // String/Boolean. Set this if you are using the new GDlib 2.0.1+. If you don't set this flag and still use GDlib2, you might encounter strange behaviours like black images etc. This feature might take effect only if ImageMagick is installed and working as well! You can also use the value "no_imagecopyresized_fix" - in that case it will NOT try to fix a known issue where "imagecopyresized" does not work correctly.
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
+ * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  * @package TYPO3
  * @subpackage t3lib
  * @see tslib_gifBuilder
@@ -256,7 +256,10 @@ class t3lib_stdGraphic     {
                        $this->png_truecolor = true;
                }
                if (!$gfxConf['im_version_5'])  {
+                       t3lib_div::deprecationLog('The option $TYPO3_CONF_VARS[\'GFX\'][\'im_version_5\'] is not set, ImageMagic 4 is assumed. This is deprecated since TYPO3 4.5, support will be removed in TYPO3 4.6. Make sure to upgrade to ImageMagick version 6 or GraphichsMagick.');
                        $this->im_version_4 = true;
+               } elseif ($gfxConf['im_version_5'] === 'im5') {
+                       t3lib_div::deprecationLog('The option $TYPO3_CONF_VARS[\'GFX\'][\'im_version_5\'] is set to \'im5\'. This is deprecated since TYPO3 4.5, support will be removed in TYPO3 4.6. Make sure to upgrade to ImageMagick version 6 or GraphichsMagick.');
                }
 
                        // When GIFBUILDER gets used in truecolor mode
@@ -298,7 +301,6 @@ class t3lib_stdGraphic      {
                }
                if ($gfxConf['im_no_effects'])  {
                                // Boolean. This is necessary if using ImageMagick 5+.
-                               // Approved version for using effects is version 4.2.9.
                                // Effects in Imagemagick 5+ tends to render very slowly!!
                                // - therefore must be disabled in order not to perform sharpen, blurring and such.
                        $this->NO_IM_EFFECTS = 1;
@@ -908,7 +910,6 @@ class t3lib_stdGraphic      {
                        $bits = explode(' ',$text);
                        foreach ($bits as $word) {
                                $word.=' ';
-                               $word = $word;
                                $wordInf = $this->ImageTTFBBoxWrapper($fontSize, $angle, $fontFile, $word, $splitRenderingConf ,$sF);
                                $wordW = ($wordInf[2]-$wordInf[0]);
                                $this->ImageTTFTextWrapper($im, $fontSize, $angle, $x, $y, $Fcolor, $fontFile, $word, $splitRenderingConf, $sF);
@@ -932,7 +933,7 @@ class t3lib_stdGraphic      {
         * @param       array           The TypoScript properties of the TEXT GIFBUILDER object
         * @return      integer         The new fontSize
         * @access private
-        * @author Rene Fritz <r.fritz@colorcube.de>
+        * @author René Fritz <r.fritz@colorcube.de>
         * @see tslib_gifBuilder::start()
         */
        function fontResize($conf) {
@@ -1623,6 +1624,39 @@ class t3lib_stdGraphic   {
        }
 
        /**
+        * Implements the "Ellipse" GIFBUILDER object
+        * Example Typoscript:
+        * file  =  GIFBUILDER
+        * file  {
+        * XY  =  200,200
+        * format  =  jpg
+        * quality  =  100
+        * 10  =  ELLIPSE
+        * 10.dimensions  =  100,100,50,50
+        * 10.color  =  red
+        *
+        * $workArea = X,Y
+        * $conf['dimensions'] = offset x, offset y, width of ellipse, height of ellipse
+        *
+        * @param       pointer GDlib image pointer
+        * @param       array $conf TypoScript array with configuration for the GIFBUILDER object.
+        * @param       array $workArea The current working area coordinates.
+        * @return      void
+        * @see tslib_gifBuilder::make()
+        */
+       public function makeEllipse(&$im, array $conf, array $workArea) {
+               $ellipseConfiguration = t3lib_div::intExplode(',', $conf['dimensions'] . ',,,');
+               $conf['offset'] = $ellipseConfiguration[0] . ',' . $ellipseConfiguration[1]; // ellipse offset inside workArea (x/y)
+
+               // @see objPosition
+               $imageCoordinates = $this->objPosition($conf, $workArea, array($ellipseConfiguration[2], $ellipseConfiguration[3]));
+
+               $color = $this->convertColor($conf['color']);
+               $fillingColor = imagecolorallocate($im, $color[0], $color[1], $color[2]);
+               imagefilledellipse($im, $imageCoordinates[0], $imageCoordinates[1], $imageCoordinates[2], $imageCoordinates[3], $fillingColor);
+       }
+
+       /**
         * Implements the "EFFECT" GIFBUILDER object
         * The operation involves ImageMagick for applying effects
         *
@@ -2300,10 +2334,20 @@ class t3lib_stdGraphic  {
                                $w=$data['origW'];
                                $h=$data['origH'];
 
-                                       // if no convertion should be performed
-                               $wh_noscale = (!$w && !$h) || ($data[0]==$info[0] && $data[1]==$info[1]);               // this flag is true if the width / height does NOT dictate the image to be scaled!! (that is if no w/h is given or if the destination w/h matches the original image-dimensions....
-
-                               if ($wh_noscale && !$data['crs'] && !$params && !$frame && $newExt==$info[2] && !$mustCreate) {
+                                       // if no conversion should be performed
+                                       // this flag is true if the width / height does NOT dictate 
+                                       // the image to be scaled!! (that is if no width / height is
+                                       // given or if the destination w/h matches the original image
+                                       // dimensions or if the option to not scale the image is set)
+                               $noScale = (!$w && !$h) || ($data[0] == $info[0] && $data[1] == $info[1]) || $options['noScale'];
+
+                               if ($noScale && !$data['crs'] && !$params && !$frame && $newExt == $info[2] && !$mustCreate) {
+                                               // set the new width and height before returning, 
+                                               // if the noScale option is set
+                                       if ($options['noScale']) {
+                                               $info[0] = $data[0];
+                                               $info[1] = $data[1];
+                                       }
                                        $info[3] = $imagefile;
                                        return $info;
                                }
@@ -2948,7 +2992,7 @@ class t3lib_stdGraphic    {
         * @param       string          The filename to write to
         * @return      mixed           The output of either imageGif, imagePng or imageJpeg based on the filename to write
         * @see imageWrite()
-        * @deprecated since TYPO3 4.0, this function will be removed in TYPO3 4.5.
+        * @deprecated since TYPO3 4.0, this function will be removed in TYPO3 4.6.
         */
        function imageGif($destImg, $theImage)  {
                t3lib_div::logDeprecatedFunction();
@@ -2962,7 +3006,7 @@ class t3lib_stdGraphic    {
         *
         * @param       string          Image filename
         * @return      pointer         Image Resource pointer
-        * @deprecated since TYPO3 4.0, this function will be removed in TYPO3 4.5.
+        * @deprecated since TYPO3 4.0, this function will be removed in TYPO3 4.6.
         */
        function imageCreateFromGif($sourceImg) {
                t3lib_div::logDeprecatedFunction();