par
mankind » 03 sept. 2007, 23:30
bon alors, je n'ai pas encore réécrit mes conditionnelles proprement pour ne pas risquer de me paumer davantage dans le script (je préfère le faire à la fin quand je serais sûr que le reste marche) mais voilà où j'en suis - après m'être inspiré de tutos trouvés sur le net...
j'arrive à générer deux images réduites aux dimensions que je souhaite, et à les placer dans les deux répertoires que j'ai choisi. Cela fonctionnne bien pour la première image, mais la seconde est noire (elle est enregistrée au bon endroit, elle a la bonne taille et les bonnes proportions, mais elle est complètement noire...) alors j'ai envie de dire " à l'aide..."
$dest_fichier = $pseudo.$ext;
$dest_dossier = 'illustrations/';
$dest_dossier2 = 'vignettes/';
// creer vignette JPG
if ($ext == '.jpg' OR $ext == '.JPG') {
// emplacement de la premiere image (fichier source)
$fichierSource = $dest_dossier.$dest_fichier;
//emplacement de la deuxième image
$t_fichierdest = $dest_dossier2.$dest_fichier;
// dimensions de l image source
$dimensions_image = getImageSize($fichierSource);
$largeurSource = $dimensions_image[0];
$hauteurSource = $dimensions_image[1];
$rapport = $largeurSource/$hauteurSource;
$somme = $largeurSource+$hauteurSource;
// parametres pour la premiere image 250 px max
$ratio_paysage = $hauteurSource/($largeurSource/250);
$ratio_portrait = $largeurSource/($hauteurSource/250);
if ( ($somme<500) ) $largeurDestination=''.$largeurSource.'' AND $hauteurDestination=''.$hauteurSource.'' ;
if ( ($rapport>1) && ($somme>=500) ) $largeurDestination='250' AND $hauteurDestination=''.$ratio_paysage.'';
if ( ($rapport<1) && ($somme>=500) ) $largeurDestination=''.$ratio_portrait.'' AND $hauteurDestination='250';
if ( ($rapport==1) && ($somme>=500) ) $largeurDestination='250' AND $hauteurDestination='250';
// parametres pour la deuxième image 75 px max
$t_ratio_paysage = $hauteurSource/($largeurSource/75);
$t_ratio_portrait = $largeurSource/($hauteurSource/75);
if ( ($somme<150) ) $t_largeurDestination=''.$largeurSource.'' AND $t_hauteurDestination=''.$t_hauteurSource.'' ;
if ( ($rapport>1) && ($somme>=150) ) $t_largeurDestination='75' AND $t_hauteurDestination=''.$t_ratio_paysage.'';
if ( ($rapport<1) && ($somme>=150) ) $t_largeurDestination=''.$t_ratio_portrait.'' AND $t_hauteurDestination='75';
if ( ($rapport==1) && ($somme>=150) ) $t_largeurDestination='75' AND $t_hauteurDestination='75';
$source = ImageCreateFromJpeg($fichierSource);
$im = ImageCreateTrueColor($largeurDestination, $hauteurDestination);
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
ImageJpeg ($im, $fichierSource);
$im2 = ImageCreateTrueColor($t_largeurDestination, $t_hauteurDestination);
ImageCopyResampled($im2, $source, 0, 0, 0, 0, $t_largeurDestination, $t_hauteurDestination, $t_largeurSource, $t_hauteurSource);
ImageJpeg ($im2, $t_fichierdest);
ImageDestroy($im);
ImageDestroy($im2);
}
bon alors, je n'ai pas encore réécrit mes conditionnelles proprement pour ne pas risquer de me paumer davantage dans le script (je préfère le faire à la fin quand je serais sûr que le reste marche) mais voilà où j'en suis - après m'être inspiré de tutos trouvés sur le net...
j'arrive à générer deux images réduites aux dimensions que je souhaite, et à les placer dans les deux répertoires que j'ai choisi. Cela fonctionnne bien pour la première image, mais la seconde est noire (elle est enregistrée au bon endroit, elle a la bonne taille et les bonnes proportions, mais elle est complètement noire...) alors j'ai envie de dire " à l'aide..." :roll:
[php]
$dest_fichier = $pseudo.$ext;
$dest_dossier = 'illustrations/';
$dest_dossier2 = 'vignettes/';
// creer vignette JPG
if ($ext == '.jpg' OR $ext == '.JPG') {
// emplacement de la premiere image (fichier source)
$fichierSource = $dest_dossier.$dest_fichier;
//emplacement de la deuxième image
$t_fichierdest = $dest_dossier2.$dest_fichier;
// dimensions de l image source
$dimensions_image = getImageSize($fichierSource);
$largeurSource = $dimensions_image[0];
$hauteurSource = $dimensions_image[1];
$rapport = $largeurSource/$hauteurSource;
$somme = $largeurSource+$hauteurSource;
// parametres pour la premiere image 250 px max
$ratio_paysage = $hauteurSource/($largeurSource/250);
$ratio_portrait = $largeurSource/($hauteurSource/250);
if ( ($somme<500) ) $largeurDestination=''.$largeurSource.'' AND $hauteurDestination=''.$hauteurSource.'' ;
if ( ($rapport>1) && ($somme>=500) ) $largeurDestination='250' AND $hauteurDestination=''.$ratio_paysage.'';
if ( ($rapport<1) && ($somme>=500) ) $largeurDestination=''.$ratio_portrait.'' AND $hauteurDestination='250';
if ( ($rapport==1) && ($somme>=500) ) $largeurDestination='250' AND $hauteurDestination='250';
// parametres pour la deuxième image 75 px max
$t_ratio_paysage = $hauteurSource/($largeurSource/75);
$t_ratio_portrait = $largeurSource/($hauteurSource/75);
if ( ($somme<150) ) $t_largeurDestination=''.$largeurSource.'' AND $t_hauteurDestination=''.$t_hauteurSource.'' ;
if ( ($rapport>1) && ($somme>=150) ) $t_largeurDestination='75' AND $t_hauteurDestination=''.$t_ratio_paysage.'';
if ( ($rapport<1) && ($somme>=150) ) $t_largeurDestination=''.$t_ratio_portrait.'' AND $t_hauteurDestination='75';
if ( ($rapport==1) && ($somme>=150) ) $t_largeurDestination='75' AND $t_hauteurDestination='75';
$source = ImageCreateFromJpeg($fichierSource);
$im = ImageCreateTrueColor($largeurDestination, $hauteurDestination);
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
ImageJpeg ($im, $fichierSource);
$im2 = ImageCreateTrueColor($t_largeurDestination, $t_hauteurDestination);
ImageCopyResampled($im2, $source, 0, 0, 0, 0, $t_largeurDestination, $t_hauteurDestination, $t_largeurSource, $t_hauteurSource);
ImageJpeg ($im2, $t_fichierdest);
ImageDestroy($im);
ImageDestroy($im2);
}
[/php]