Page 1 sur 1

Creation miniature - Arrière plan noir à modifier

Posté : 10 avr. 2008, 21:14
par sylvaing26
Bonjour, je voudrai savoir comment faire l'arrière plan en blanc car ca ne marche qu'en partie
<?php 
    $source = "1.jpg";
    $ImageChoisie = imagecreatefromjpeg('1.jpg');
    $TailleImageChoisie = getimagesize('1.jpg');
    
if($TailleImageChoisie[0]>$TailleImageChoisie[1])
{
//Etape 1 :
$NouvelleLargeur = 90;
 
//Etape 2 :
$Reduction = ( ($NouvelleLargeur * 100)/$TailleImageChoisie[0] );
 
//Etape 3 :
$NouvelleHauteur = ( ($TailleImageChoisie[1] * $Reduction)/100 );
}
else
{
//Etape 1 :
$NouvelleHauteur = 90;
 
//Etape 2 :
$Reduction = ( ($NouvelleHauteur * 100)/$TailleImageChoisie[1] );
 
//Etape 3 :
$NouvelleLargeur = ( ($TailleImageChoisie[0] * $Reduction)/100 );
}
//Etape 1 :
$NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");



 
//Etape 2 :
imagecopyresampled($NouvelleImage , $ImageChoisie, 0, 0, 0, 0, $NouvelleLargeur, $NouvelleHauteur, $TailleImageChoisie[0],$TailleImageChoisie[1]);
$background_color = imagecolorallocate ($NouvelleImage, 255, 255, 255);
imagefill($NouvelleImage,0,0,$background_color);
//////////////////
$miniature = "mini_$source";  
    ImageJpeg ($NouvelleImage, $miniature);   
$NouvelleImage2 = imagecreatetruecolor(90 , 90) or die ("Erreur");
$background_color = imagecolorallocate ($NouvelleImage2, 255, 255, 255);
imagefill($NouvelleImage2,0,0,$background_color);
$TailleImageChoisie2 = getimagesize("mini_$source.jpg");
$x = ( (90-$NouvelleLargeur)/2 );
$y = ( (90-$NouvelleHauteur)/2 );
imagecopyresampled($NouvelleImage2 , $NouvelleImage, $x, $y, 0, 0, 90, 90, 90,90);
      

    $miniature = "mini_$source";  
    ImageJpeg ($NouvelleImage2, $miniature);   
    echo "Image miniature générée: $miniature";  



?> 

Re: Creation miniature - Arrière plan noir à modifier

Posté : 13 avr. 2008, 17:29
par ouckileou
car ca ne marche qu'en partie
C'est à dire ?
Sois précis, on devrait pas être obligé d'exécuter ton code pour déjà comprendre le problème.

Posté : 13 avr. 2008, 17:39
par SAEVEAS
Au risque de dire une connerie mais un arriere plan pour des miniatures autant le faire en CSS avec l'attribut border ....

Posté : 14 avr. 2008, 15:38
par sylvaing26
ma reduction et ma miniature en carré est bien effectuée mais comme l'image n'est pas un carré a l'origine j'ai deux bandes noires de chaque coté

Posté : 12 mai 2008, 20:03
par lux
J'up ce topic car je serais aussi intéressé de savoir. Chez moi ça me fait 2 bandes grises autour des thumbnails crées (si ils sont plus haut que large). C'est du à quoi ?

Posté : 12 mai 2008, 20:31
par Cyrano
Comme tu crées probablement ton image avec GD, l'image de base dans laquelle va se trouver ta miniature a un fond noir par défaut.

Il faut remplir ce carré de blanc avant d'y mettre ta miniature : utilise imagefilledrectangle() pour faire ça. Supposons par exemple que tu crées une image de 100px/100px :
<?php
/* Création de l'image de base */
$img = imagecreate(100, 100);
/* Allocation de couleur blanche */
$blanc = imagecolorallocate($img, 0xFF, 0XFF, 0XFF); 
/* Remplissage de l'image de base en blanc */
imagefilledrectangle($img, 0, 0, 100, 100, $blanc);
// ... etc...
?>

Posté : 12 mai 2008, 20:49
par lux
Ha ben non finalement c'était un autre problème qui faisait que j'avais ça. J'ai pas fait gaffe les images de base étaient redimensionné par je sais pas qui, qui a mis des bandes grises autour :twisted:

Grrrr :roll:

Et moi qui ai cherché pendant 2h pourquoi ça faisait ça :oops: