/**
  * 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);
 }
示例#2
0
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";
示例#6
0
文件: app.php 项目: jeanvoye/utb
 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()}>");
}