Bon en fait je viens de comprendre pourquoi mon tif ne séxécutais pas...
Voici mon code entier :
public function open_image ($file) {
# JPEG:
$im = @ ($file);
if ($im !== false) { return $im; }
# GIF:
$im = @imagecreatefromgif($file);
if ($im !== false) { return $im; }
# PNG:
$im = @imagecreatefrompng($file);
if ($im !== false) { return $im; }
# GD File:
$im = @imagecreatefromgd($file);
if ($im !== false) { return $im; }
# GD2 File:
$im = @imagecreatefromgd2($file);
if ($im !== false) { return $im; }
# WBMP:
$im = @imagecreatefromwbmp($file);
if ($im !== false) { return $im; }
# XBM:
$im = @imagecreatefromxbm($file);
if ($im !== false) { return $im; }
# XPM:
$im = @imagecreatefromxpm($file);
if ($im !== false) { return $im; }
# Try and load from string:
$im = @imagecreatefromstring(file_get_contents($file));
if ($im !== false) { return $im; }
return false;
}
public function _resize_img( $img, $new_width, $new_height, $height_post, $width_post, $pseudo){
// Load image
$image = $this->open_image($img);
if ($image == false) {
die ('<strong>You uploaded an invalid image. Please go back and try again.</strong>');
}
// Get original width and height
$width = imagesx($image);
$height = imagesy($image);
// New width? Calculate new height
if ( $new_width != "-1" ) {
$new_width = floatval($new_width);
$new_height = $height * ($new_width/$width);
// New height? Calculate new width
} elseif ( $new_height != "-1") {
$new_height = floatval($new_height);
$new_width = $width * ($new_height/$height);
// New height and new width
} elseif ( $height_post != "-1" && $width_post != "-1" ) {
$new_height = floatval($height_post);
$new_width = floatval($width_post);
} else {
$new_height = floatval($height_post);
$new_width = floatval($width_post);
}
$extension = strrchr($img, '.');
if( $extension == ".tif" || $extension == ".TIF" )
$convertString = "../../../../../usr/bin/mogrify ".$img." -format jpg -thumbnail " . $new_width . "x" . $new_height . " -strip -colorspace RGB -quality 100 ".$img;
else
$convertString = "../../../../../usr/bin/mogrify ".$img." -resize " . $new_width . "x" . $new_height . " -strip -colorspace RGB -quality 100 ".$img;//-interlace line
exec($convertString);
/*
// Resample
$image_resized = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
switch ( $ext ) {
case 'jpeg':
imagejpeg( $image_resized,$img, 80 );
break;
case 'JPEG':
imagejpeg( $image_resized,$img, 80 );
break;
case 'jpg':
imagejpeg( $image_resized,$img, 80 );
break;
case 'JPG':
imagejpeg( $image_resized,$img, 80 );
break;
case 'gif':
imagegif( $image_resized,$img, 80 );
break;
case 'GIF':
imagegif( $image_resized,$img, 80 );
break;
case 'png':
imagecreatefrompng( $image_resized,$img, 80 );
break;
case 'PNG':
imagecreatefrompng( $image_resized,$img, 80 );
break;
default:
imagejpeg( $image_resized,$img, 80 );
break;
}*/
return array( "new_width" => $new_width, "new_height" => $new_height );
}
Etant donné que je tentais d'ouvrir du tif avec ma fonction open_image() qui n'était pas apte elle à ouvrir ce type de format d'image, le script ce bloquait au niveau de la récupération de mes valeurs $width et $height.
Désormais, pour obtenir mes largeur/hauteur, j'utilise simplement un getimagesize($img) !
Et le tour est joué, mon tif se transforme bien en jpg et au bon format souhaité
Cependant, existe t'il une methode alternative en gd (comme vous pouvez le constaté, j'avais dabord commencé à générer mes miniatures grâce à GD, lorsque je me suis posé la question des conversions de format d'image...et imagemagick était ma fois plus approprié) pour ouvrir un fichier tif ? imagecreatefromtif par exemple

?
Sinon je n'ai pas très bien compris ta remarque sur mon chemin relatif...Je comprend que ca ne soit pas très jolie, mais mon script PHP ce trouve à un niveau 3 par rapport à l'arbo de mon site, et mon dossier qui contient le site est de niveau 2 (srv/www). Comment je fait pour rendre mon chemin en absolu ?
Merci pour vos réponses