Bonjour,
J'espere trouver de l'aide à mon probleme je suis bloqué depuis un bon moment et malgré de nombreuses recherches je ne trouve pas comment faire...
J'utilise le framwork Codeigniter et la librairies imagine pour creer des miniatures d'images a la volée dans mon site.
Le probleme est que mon code de creation de miniature bug si je poste une image haute resolution ... (exemple 3000x4000).
Comment faire pour resoudre ce probleme, d'ou vient cette limitation ?
Ce que je fais
Voici la class de ma librairies image qui effectue le cropping a la volée :
Image.php :around
class Image{
static function crop($image,$width,$height)
{
$info = pathinfo($image);
//Je creer mes miniatures dans un dossier min
$folder = $info['dirname'].'/min/';
if(!is_dir($folder))
{
mkdir($folder,0777);
}
//Je rajoute les parametres au nom de mon image
$dest = $folder.$info['filename']."_$width"."x$height.".$info['extension'];
if(file_exists($dest))
{
//return base_url($dest.'?'.rand());
return base_url($dest);
}
require_once (APPPATH."libraries/imagine.phar");
$imagine = new Imagine\Gd\Imagine();
$size = new Imagine\Image\Box($width,$height);
$options = array(
'quality' => 100,
);
$imagine->open($image)->thumbnail($size,'outbound')->save($dest,$options);
return base_url($dest);
}
}
Dans une page html comment je l'appelle :
<img src="<?php echo Image::crop($r->image,340,200).'?'.rand();?>" alt="image">
Lorsqu'une image est trop grande ( je ne saurais dire a partir de quelle taille d'ailleurs) mon script plante carrement, la miniature n'existe pas et du coup toute ma page est stoppé a partir de l'erreur de la miniature ... ce qui est assez pénible.