[PHP] imagecreatefrom BMP comment faire?

Profil bloqué -  
 Profil bloqué -
Bonjour a tous, je cherhce a pouvoir faire la redimmension al'envoie d'image, j'ai bien reussit sans probleme a faire la redimension du jpg, png, et gif (le trnasparent par pour du noir par contre) mais le bmp reste encore un probleme.
j'ai bien tenter, le "imagecreatefrombmp" et le "imagecreatefromwbmp" mais cela ne fonctionne pas, j'ai aussi essayez de le faire avec le png mais cela ne fonctionne pas non plus.

De plus, (soit c'est c'est fonctions qui font planter soir quandje demande un bmp, le formulaire plante et n'envoie rien car j'ai des allerte comme quoi, mes variable POST et FILES sont vide.

Voila les code utiliser:
Le fichier d'envoie:
<form action="img.php" method="post"  enctype="multipart/form-data">
<select name="place">
<?php
function glob_free($dir,$patern='*'){
	$tab='';
	if (is_dir($dir)) {
	    if ($dh = opendir($dir)) {
	        while (($file = readdir($dh)) !== false) {
				$ext=explode('.',$file);
				$ext=$ext[count($ext)-1];
	            if($ext==$patern || $patern=="*" && $file!='.' && $file!='..'){
					$tab[]=$dir.$file;
				}
	        }
	        closedir($dh);
	    }
	}
	return $tab;
}   
function get_tree($path = './'){
	if (substr($path,-1) !== '/')
		$path .= '/';
	$tree = '';
	$dirs = glob_free($path,'*');
	if(is_array($dirs))
	foreach ($dirs as $value){
		if(is_dir($value)){
			$tree .= '<option value="'.$value.'/">'.$value.'</option>';
			$tree.=get_tree($value.'/');
		}
	}
	return $tree;
}
    echo get_tree('images/');
?>
</select>
<input type="file" name="fichier_choisi" />
<input type="submit" />
</form>




Et celui de traitement:
<?php
$place=$_POST['place'];
echo ''.$place.'<br>';

list($width, $height, $type) = getimagesize($_FILES['fichier_choisi']['tmp_name']);
$size = getimagesize($_FILES['fichier_choisi']['tmp_name']);
$name = $_FILES['fichier_choisi']['name'];
$MIME = $size['mime'];
echo 'Largeur: '.$width.'<br>';
echo 'Hauteur: '.$height.'<br>';
echo 'Type: '.$type.'<br>';
echo 'MIME: '.$MIME.'<br>';

if($MIME == 'image/jpeg' || $MIME == 'image/jpg' || $MIME == 'image/pjpeg' || $MIME == 'image/pjpg'){
echo 'on lance le type jpeg<br>';
$source = imagecreatefromjpeg($_FILES['fichier_choisi']['tmp_name']); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
echo 'Largeur source: '.$largeur_source .'<br>';
$hauteur_source = imagesy($source);
echo 'Hauteur source: '.$hauteur_source .'<br>';
$largeur_destination = imagesx($destination);
echo 'Largeur destination: '.$largeur_destination .'<br>';
$hauteur_destination = imagesy($destination);
echo 'Hauteur destination: '.$hauteur_destination .'<br>';

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, ''.$place.'mini_'.$name.'');
}
elseif($MIME == 'image/gif'){
echo 'on lance le type gif<br>';
$source = imagecreatefromgif($_FILES['fichier_choisi']['tmp_name']); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
echo 'Largeur source: '.$largeur_source .'<br>';
$hauteur_source = imagesy($source);
echo 'Hauteur source: '.$hauteur_source .'<br>';
$largeur_destination = imagesx($destination);
echo 'Largeur destination: '.$largeur_destination .'<br>';
$hauteur_destination = imagesy($destination);
echo 'Hauteur destination: '.$hauteur_destination .'<br>';

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagegif($destination, ''.$place.'mini_'.$name.'');
}
elseif($MIME == 'image/png'){
echo 'on lance le type PNG<br>';
$source = imagecreatefrompng($_FILES['fichier_choisi']['tmp_name']); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
echo 'Largeur source: '.$largeur_source .'<br>';
$hauteur_source = imagesy($source);
echo 'Hauteur source: '.$hauteur_source .'<br>';
$largeur_destination = imagesx($destination);
echo 'Largeur destination: '.$largeur_destination .'<br>';
$hauteur_destination = imagesy($destination);
echo 'Hauteur destination: '.$hauteur_destination .'<br>';

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagepng($destination, ''.$place.'mini_'.$name.'');
}


elseif($MIME == 'image/bmp' || $MIME == 'image/x-ms-bmp'){
echo 'on lance le type BMP<br>';
$source = imagecreatefrompng($_FILES['fichier_choisi']['tmp_name']); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
echo 'Largeur source: '.$largeur_source .'<br>';
$hauteur_source = imagesy($source);
echo 'Hauteur source: '.$hauteur_source .'<br>';
$largeur_destination = imagesx($destination);
echo 'Largeur destination: '.$largeur_destination .'<br>';
$hauteur_destination = imagesy($destination);
echo 'Hauteur destination: '.$hauteur_destination .'<br>';

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagepng($destination, ''.$place.'mini_'.$name.'');
}


et maintenat, l'erreur que j'ai quand j'envoie un bmp:
Notice: Undefined index: place in C:\wamp\www\autre-site\test\img.php  on line 3


Notice: Undefined index: fichier_choisi in C:\wamp\www\autre-site\test\img.php on line 6

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in C:\wamp\www\autre-site\test\img.php on line 6

Notice: Undefined index: fichier_choisi in C:\wamp\www\autre-site\test\img.php on line 7

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in C:\wamp\www\autre-site\test\img.php on line 7

Notice: Undefined index: fichier_choisi in C:\wamp\www\autre-site\test\img.php on line 8
Largeur:
Hauteur:
Type:
MIME: 


Merci de votre aide.
A voir également:

2 réponses

hack_net Messages postés 783 Date d'inscription   Statut Membre Dernière intervention   51
 
C'est bizarre ces erreurs, d'après ce qu'elles disent, ton formulaire ne "s'envoie pas" ! Oo
0
Profil bloqué
 
oui en effet.

Et j'ai d'autre bug, je met deux jpg different et l'un pass alors que l'autre non.
0