Bonjour,
je redimensionne des images à la volée avec le module Image::Resize, et ça marche bien pour 98% des images environ.
Pour les 2 % restant, le module fait planter le script avec le message peu explicite suivant :
Died at /usr/local/share/perl/5.14.2/Image/Resize.pm line 25.
correspondant à cette fonction du module :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| sub new {
my ($class, $image) = @_;
unless ( $class && defined($image) ) { croak "Image::Resize->new(): usage error"; }
my $gd;
# Thanks to Nicholas Venturella <nick2588 AT gmail.com> for this tip
if (ref($image) eq "GD::Image") {
$gd = $image;
} else {
unless ( -e $image ) { croak "Image::Resize->new(): file '$image' does not exist"; }
$gd = GD::Image->new($image) or die $@; #ligne qui plante
}
return bless {
gd => $gd
}, $class;
}; |
et je ne comprends pas pourquoi, l'image existe bien, le format est du jpeg comme 80% des autres images, et les dimensions sont dans le même ordre de grandeur que les autres.
voici le bout de code que j'utilise :
1 2
| my $image = Image::Resize->new($file) or die "$!\n"; #ligne qui plante
my $gd = $image->resize(80, 120) or die "$! \n"; |
la seule piste que j'ai trouvé m'indique qu'il y aurait une limite minimum et maximum pour chaque type de fichier et que mes images récalcitrantes seraient trop grandes. Et ça me parait très étrange que pour un module de redimensionnement il y ait une limite pour les tailles des input.
Si vous avez une idée, je suis preneur...
Merci par avance
Partager