Bonjour,
j'ai suivi le tutoriel sur la librarie Imagine de grafikart et je les adapté pour l'utiliser sur le framework Cakephp, mais quand je fait appelle à la fonction mosaic() de ma petite classe Image. Le serveur plante et il me dit que aucune données reçus. et mon image mosaic n'apparaît pas dans mon dossier /img/imagine/.

Voici le code source de ma classe Image() :
[code]
<?php
class Image{

static function resize($image, $width, $height){
      $info = pathinfo($image);
      $dest = $info['dirname'] . '/' . $info['filename'] . "_$width" . "x$height" . ".jpg";
      if(file_exists($dest)){
         return '<img src="' . $dest . '">';
      }
      require_once 'imagine.phar';
      $imagine = new Imagine\Gd\Imagine();
      $size = new Imagine\Image\Box($width,$height);
      $imagine->open($image)->thumbnail($size, 'outbound')->save($dest);
      return '<img src="' . $dest . '">';
}

static function mosaic($directory, $perLine, $width, $height){
    $dest = $directory . '/mosaic.jpg';
    var_dump($directory);
    if(file_exists($dest)){
        return $dest;
    }
    $images = glob($directory . '/*.jpg');
    require_once 'imagine.phar';

    // On crée une mosaic vide
    $imagine = new Imagine\Gd\Imagine();
    $size = new Imagine\Image\Box($width * ceil( count($images) / $perLine), $perLine * $height);
    $thumbsize = new Imagine\Image\Box($width, $height);
    $mosaic = $imagine->create($size);

    foreach($images as $k => $image){
        if(!strpos($image, 'mosaic')){
            $x = floor($k / $perLine) * $width;
            $y = $k % $perLine * $height;
            $point = new Imagine\Image\Point($x, $y);
            $thumb = $imagine->open($image)->thumbnail($thumbsize, 'outbound');
            $mosaic->paste($thumb,  $point);
        }
    }

    $aplat = $imagine->create($size, new Imagine\Image\Color('000000', 50));
    $mosaic->paste($aplat, new Imagine\Image\Point(0,0));

    $mosaic->save($dest);
    return $dest;

}

}
[/code]

Dans mon controller quotesController (un controller que j'ai choisi au hasard)
Je fait un require de la library Imagine et ma petit library Image()
[code]function carousel(){
require APPLIBS.'Imagine'.DS.'imagine.phar';
require APPLIBS.'Imagine'.DS.'image.php';
}[/code]

sur la vue carousel.ctp je fait un style css de .item où ma mosaïque est posé apparaitre.

[code]
<style type="text/css">
.item{
background: url(<?= Image::mosaic('/img/imagine/',5 ,100, 75); ?>) left top;
}
</style>
[/code]

Merci de votre aide en avance.

Aucune réponse