Probleme lors de creation de vignettes jpeg PHP

Petit nouveau ! | 3 Messages

24 sept. 2007, 00:50

bonjour,

je me trouve devant un probleme qui dure depuis 2 semaines :
je dois generer des vignettes (ou miniatures) pour une gallerie en flash sur le site suivant : http://solo.steuh.com/
mais les vignettes sont noires, pkoi ???

AIDEZ MOI !!! je suis desespere...

voici le code :
<ITEMS>
<?
function directoryToArray($directory, $recursive) {
    $array_items = array();
    if ($handle = opendir($directory)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                if (is_dir($directory. "/" . $file)) {
                    if($recursive) {
                        $array_items = array_merge($array_items, directoryToArray($directory. "/" . $file, $recursive));
                    }
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                } else {
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                }
            }
        }
        closedir($handle);
    }
    return $array_items;
}
function generateMiniature($url,$pic){
	// ?©ditez les 2 variables ci-dessous en fonction du r?©sultat souhait?© :
	$largeur = "50"; // correspond ?† la largeur de l'image souhait?©e
	$hauteur ="50"; // correspond ?† la hauteur de l'image souhait?©e
	//On ouvre le fichier
	//$fic = fopen($url,w);
	// et voici la cr?©ation de la miniature...
//	header("Content-Type: image/jpeg");
	$img_in = imagecreatefromjpeg($pic);
	$img_out = imagecreatetruecolor($largeur, $hauteur);
	imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
	imagejpeg($img_out,$url);
}
if ($folder=="") $folder="images";
$files = directoryToArray($folder, false);
//On refait le tableau pour ranger les miniatures
foreach ($files as $file) {
	if (!preg_match("#(.*)\.minia#",$file)) {
		//On verifie Si le fichier existe
		if (file_exists($file.".minia"))
		$Temp["Url"] = $file;
		$Temp["Minia"] = $file.".minia";
		if (!file_exists($Temp["Minia"])) {
			generateMiniature($Temp["Minia"],$Temp["Url"]);
			generateMiniature($Temp["Minia"],$Temp["Url"]);
		}
		$TabFile[] = $Temp;
	}
}
$files = $TabFile;
foreach ($files as $file) {
    echo '
		<ITEM>
			<TITRE>/'.$file["Minia"].'</TITRE>
			<LIEN>/'.$file["Url"].'</LIEN>
		</ITEM>';
}

?> 
		
</ITEMS>
je vous remercie par avance,

STEUH

Petit nouveau ! | 8 Messages

24 sept. 2007, 17:55

;)
$filename = "dossier/ton_image_origine_a_redientionner.jpg";
$image_dest= "dossier/le_nom_de_la_miniature.jpg";				
// Content type
header('Content-type: image/jpeg');
				
// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$new_width = 128;
$new_height = 96;
				
// Redimensionnement
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
				
// Affichage (pas obligé )
//imagejpeg($image_p, null, 100);   
				
Ecriture dans le dossier
imagejpeg ( $image_p, $image_dest , 100 ) ;
;)
Tout sur Steve Vai = www.stevevai.fr

Petit nouveau ! | 3 Messages

24 sept. 2007, 22:15

salut STEVE !!!

je te remercie d'avoir repondu si vite.
mais comme je n'y connais vraiment pas du tout en PHP.
et je crois que ton code ne solutionne pas le fait que mes vignettes apparaissent "noires" !

tu crois que tu pourrais m'aider dans ce sens ?

merci a toi

STEUH

Eléphant du PHP | 53 Messages

25 sept. 2007, 02:38

slt,

un ami avait eu des problemes dans ce genre et cela venait de la compression des images qui n'etait pas adapté... peut-etre a verifé...

sinon bonne chance car moi je ne suis pas developpeur
www.theitalianblog.com tout pour Nokia Symbian

Petit nouveau ! | 3 Messages

25 sept. 2007, 14:52

salut Joss !

je te remercie pour ta réponse mais cette piste ne fonctionne pas non plus...

aaahhhh au secours !!!!!

STEUH