/** * Instanciantes the image converter with a set of filters * * @param array(ezcImageFilter) $filter Filters to add to the image converter * @return void * @throws ezcBaseSettingValueException Error adding the transformation */ public function __construct($filter) { $imageINI = eZINI::instance('image.ini'); // we get an array of handlers, where order of entries in array gives priority // for each entry, we need to check if the matching handler is enabled, and this has to be manual $imageHandlers = $imageINI->variable('ImageConverterSettings', 'ImageConverters'); foreach ($imageHandlers as $imageHandler) { switch ($imageHandler) { case 'ImageMagick': $hasImageMagick = $imageINI->variable('ImageMagick', 'IsEnabled') == 'true'; if ($hasImageMagick) { break 2; } break; // GD2 is required for the image editor // @todo Make the image editor degrade as nicely as possible if GD is not bundled // GD2 is required for the image editor // @todo Make the image editor degrade as nicely as possible if GD is not bundled case 'GD': $hasGD2 = $imageINI->variable('GD', 'IsEnabled') == 'true' && $imageINI->variable('GDSettings', 'HasGD2' == 'true'); if ($hasGD2) { break 2; } break; } } if ($hasImageMagick) { // we need to use the ImageMagick path configured in the image.ini file $executable = $imageINI->variable('ImageMagick', 'Executable'); if (eZSys::osType() == 'win32' && $imageINI->hasVariable('ImageMagick', 'ExecutableWin32')) { $executable = $imageINI->variable('ImageMagick', 'ExecutableWin32'); } else { if (eZSys::osType() == 'mac' && $imageINI->hasVariable('ImageMagick', 'ExecutableMac')) { $executable = $imageINI->variable('ImageMagick', 'ExecutableMac'); } else { if (eZSys::osType() == 'unix' && $imageINI->hasVariable('ImageMagick', 'ExecutableUnix')) { $executable = $imageINI->variable('ImageMagick', 'ExecutableUnix'); } } } if ($imageINI->hasVariable('ImageMagick', 'ExecutablePath') && $imageINI->variable('ImageMagick', 'ExecutablePath')) { $executable = $imageINI->variable('ImageMagick', 'ExecutablePath') . eZSys::fileSeparator() . $executable; } // @todo Remove if ezc indeed do it automatically // if ( eZSys::osType() == 'win32' ) // $executable = "\"$executable\""; $imageHandlerSettings = new ezcImageHandlerSettings('ImageMagick', 'eZIEEzcImageMagickHandler', array('binary' => $executable)); $settings = new ezcImageConverterSettings(array($imageHandlerSettings)); } else { $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'eZIEEzcGDHandler'))); } $this->converter = new ezcImageConverter($settings); $mimeType = $imageINI->variable('OutputSettings', 'AllowedOutputFormat'); $this->converter->createTransformation('transformation', $filter, $mimeType); }
function getImageConverterInstance() { if (!isset($GLOBALS['_ezcImageConverterInstance'])) { // Prepare settings for ezcImageConverter // Defines the handlers to utilize and auto conversions. $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'), new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler')), array('image/gif' => 'image/png', 'image/bmp' => 'image/jpeg')); // Create the converter itself. $converter = new ezcImageConverter($settings); // Define a transformation $filters = array(new ezcImageFilter('scale', array('width' => 100, 'height' => 300, 'direction' => ezcImageGeometryFilters::SCALE_BOTH)), new ezcImageFilter('colorspace', array('space' => ezcImageColorspaceFilters::COLORSPACE_SEPIA)), new ezcImageFilter('border', array('width' => 5, 'color' => array(255, 0, 0)))); // Which MIME types the conversion may output $mimeTypes = array('image/jpeg', 'image/png'); // Create the transformation inside the manager $converter->createTransformation('funny', $filters, $mimeTypes); // Assign singleton instance $GLOBALS['_ezcImageConverterInstance'] = $converter; } // Return singleton instance return $GLOBALS['_ezcImageConverterInstance']; }
<?php require 'ezc-setup.php'; // Setup $filters = array(); $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'))); $converter = new ezcImageConverter($settings); // Create transformation $filters[] = new ezcImageFilter('croppedThumbnail', array('width' => 128, 'height' => 128)); $converter->createTransformation('doThumbnail', $filters, array('image/png')); foreach (glob('*.[Jj][Pp][Gg]') as $file) { $converter->transform('doThumbnail', $file, "thumbnails/{$file}.png"); }
<?php require_once 'tutorial_autoload.php'; $tutorialPath = dirname(__FILE__); $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'), new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler')), array('image/gif' => 'image/png')); $converter = new ezcImageConverter($settings); $filters = array(new ezcImageFilter('watermarkAbsolute', array('image' => $tutorialPath . '/img/watermark.png', 'posX' => -52, 'posY' => -25))); $converter->createTransformation('watermark', $filters, array('image/jpeg', 'image/png')); try { $converter->transform('watermark', $tutorialPath . '/img/imageconversion_example_04_before.jpg', $tutorialPath . '/img/imageconversion_example_04_after.jpg'); } catch (ezcImageTransformationException $e) { die("Error transforming the image: <{$e->getMessage()}>"); }
* General example for the ImageConversion component. * * @package ImageConversion * @version 1.3.5 * @copyright Copyright (C) 2005-2008 eZ systems as. All rights reserved. * @license http://ez.no/licenses/new_bsd New BSD License */ require_once 'Base/src/base.php'; /** * Autoload ezc classes * * @param string $className */ function __autoload($className) { ezcBase::autoload($className); } // Prepare settings for ezcImageConverter // Defines the handlers to utilize and auto conversions. $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'), new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler')), array('image/gif' => 'image/png', 'image/bmp' => 'image/jpeg')); // Create the converter itself. $converter = new ezcImageConverter($settings); // Define a transformation $filters = array(new ezcImageFilter('scaleWidth', array('width' => 100, 'direction' => ezcImageGeometryFilters::SCALE_BOTH)), new ezcImageFilter('colorspace', array('space' => ezcImageColorspaceFilters::COLORSPACE_GREY))); // Which MIME types the conversion may output $mimeTypes = array('image/jpeg', 'image/png'); // Create the transformation inside the manager $converter->createTransformation('thumbnail', $filters, $mimeTypes); // Transform an image. $converter->transform('thumbnail', dirname(__FILE__) . '/jpeg.jpg', dirname(__FILE__) . '/jpeg_thumb.jpg'); echo 'Succesfully converted <' . dirname(__FILE__) . '/jpeg.jpg> to <' . dirname(__FILE__) . '/jpeg_thumb.jpg' . ">\n";
public static function updateAvatar() { if (isset($_FILES['avatar']) && $_FILES['avatar']['error'] == 0) { $q = ezcDbInstance::get()->createSelectQuery(); $q->select('avatar')->from('avatar')->where($q->expr->eq('user_id', $q->bindValue($_SESSION['ezcAuth_id']))); $s = $q->prepare(); $s->execute(); $r = $s->fetchAll(); $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'))); $converter = new ezcImageConverter($settings); $filters = array(new ezcImageFilter('croppedThumbnail', array('width' => 32, 'height' => 32))); $converter->createTransformation('icon', $filters, array('image/png')); $converter->transform('icon', $_FILES['avatar']['tmp_name'], $_FILES['avatar']['tmp_name'] . '.tmp.png'); if (count($r)) { $q = ezcDbInstance::get()->createUpdateQuery(); $q->update('avatar'); $q->set('avatar', $q->bindValue(base64_encode(file_get_contents($_FILES['avatar']['tmp_name'] . '.tmp.png')))); $q->where($q->expr->eq('user_id', $q->bindValue($_SESSION['ezcAuth_id']))); } else { $q = ezcDbInstance::get()->createInsertQuery(); $q->insertInto('avatar'); $q->set('user_id', $q->bindValue($_SESSION['ezcAuth_id'])); $q->set('avatar', $q->bindValue(base64_encode(file_get_contents($_FILES['avatar']['tmp_name'] . '.tmp.png')))); } $s = $q->prepare(); $s->execute(); } }
<?php require_once 'tutorial_autoload.php'; $tutorialPath = dirname(__FILE__); $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'), new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler')), array('image/gif' => 'image/png')); $converter = new ezcImageConverter($settings); $filters = array(new ezcImageFilter('scale', array('width' => 320, 'height' => 240, 'direction' => ezcImageGeometryFilters::SCALE_DOWN)), new ezcImageFilter('colorspace', array('space' => ezcImageColorspaceFilters::COLORSPACE_GREY)), new ezcImageFilter('border', array('width' => 5, 'color' => array(240, 240, 240)))); $converter->createTransformation('oldphoto', $filters, array('image/jpeg', 'image/png')); try { $converter->transform('oldphoto', $tutorialPath . '/img/imageconversion_example_03_before.jpg', $tutorialPath . '/img/imageconversion_example_03_after.jpg'); } catch (ezcImageTransformationException $e) { die("Error transforming the image: <{$e->getMessage()}>"); }
<?php require_once 'tutorial_autoload.php'; $tutorialPath = dirname(__FILE__); $settings = new ezcImageConverterSettings(array(new ezcImageHandlerSettings('GD', 'ezcImageGdHandler'), new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler'))); $converter = new ezcImageConverter($settings); $filters = array(new ezcImageFilter('scale', array('width' => 320, 'height' => 240, 'direction' => ezcImageGeometryFilters::SCALE_DOWN))); $converter->createTransformation('preview', $filters, array('image/jpeg')); try { $converter->transform('preview', $tutorialPath . '/img/imageconversion_example_02_before.jpg', $tutorialPath . '/img/imageconversion_example_02_after.jpg'); } catch (ezcImageTransformationException $e) { die("Error transforming the image: <{$e->getMessage()}>"); }