par
KROC69 » 26 janv. 2006, 01:55
Bonsoir à tous
Voilà mon pb, dans un formulaire je cherche à créer à partir d'un fichier image une imagette.
J'ai trouvé grace entre autre au forum les principes de création via la librairie GD mais malgré mes tentatives j'ai encore un pb que je n'arrive pas à résoudre.
Voici le code appelant un fonction PHP
if ($RecupNomFichier != "")
{
$image_f=imagecopyresampledselection("Z:/EasyPHP1-8/www/Antiquite/Images/".$RecupNomImage,50,50,1,"center");
header('Content-type: image/jpeg');
imagejpeg($image_f,null,100);
}
voici la fonction imagecopyresampledselection
function imagecopyresampledselection($filename, $desired_width, $desired_height, $bordersize, $position)
{
// Get new dimensions
list($width, $height) = getimagesize($filename);
if($desired_width/$desired_height > $width/$height):
$new_width = $desired_width;
$new_height = $height * ($desired_width / $width);
else:
$new_width = $width * ($desired_height / $height);
$new_height = $desired_height;
endif;
// Resize
$image_p = imagecreatetruecolor($new_width, $new_height);
$image_f = imagecreatetruecolor($desired_width, $desired_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Adjust position
switch($position)
{
case("topleft"):
$x = $bordersize;
$y = $bordersize;
break;
case("topright"):
$x = $new_width - $desired_width + $bordersize;
$y = $bordersize;
break;
case("bottomleft"):
$x = $bordersize;
$y = $new_height - $desired_height + $bordersize;
break;
case("bottomright"):
$x = $new_width - $desired_width + $bordersize;
$y = $new_height - $desired_height + $bordersize;
break;
case("center"):
$x = ($new_width - $desired_width) / 2 + $bordersize;
$y = ($new_height - $desired_height) / 2 + $bordersize;
break;
}
// Resample with 1px border
imagecopyresampled($image_f, $image_p, $bordersize, $bordersize, $x, $y, $desired_width - 2 * $bordersize,
$desired_height - 2 * $bordersize,
$desired_width - 2 * $bordersize,
$desired_height - 2 * $bordersize);
return $image_f;
}
et voici le résultat dans mon formulaire
Warning: Cannot modify header information - headers already sent by (output started at z:\easyphp1-8\www\antiquite\antiquitebdd\saisiephotossite.php:42) in z:\easyphp1-8\www\antiquite\antiquitebdd\saisiephotossite.php on line 312
ÿØÿà et ainsi de suite avec tout un tas de caractères tous plus bizarres les uns que les autres...
Petite précision au cas où cela aurait une certaine importance les fichiers que je récupère sont sous la forme nom du fichier.jpg et je me demande si dans les fonctions le fait que l'extension ne soit pas .jpeg ne fous pas le bazar ?!
Quelqu'un aurait-il la gentillesse de me dire ce qui cloche la dedans?
Merci d'avance
Kroc69

](*,)
Bonsoir à tous
Voilà mon pb, dans un formulaire je cherche à créer à partir d'un fichier image une imagette.
J'ai trouvé grace entre autre au forum les principes de création via la librairie GD mais malgré mes tentatives j'ai encore un pb que je n'arrive pas à résoudre.
Voici le code appelant un fonction PHP
[php]
if ($RecupNomFichier != "")
{
$image_f=imagecopyresampledselection("Z:/EasyPHP1-8/www/Antiquite/Images/".$RecupNomImage,50,50,1,"center");
header('Content-type: image/jpeg');
imagejpeg($image_f,null,100);
}
[/php]
voici la fonction imagecopyresampledselection
[php]
function imagecopyresampledselection($filename, $desired_width, $desired_height, $bordersize, $position)
{
// Get new dimensions
list($width, $height) = getimagesize($filename);
if($desired_width/$desired_height > $width/$height):
$new_width = $desired_width;
$new_height = $height * ($desired_width / $width);
else:
$new_width = $width * ($desired_height / $height);
$new_height = $desired_height;
endif;
// Resize
$image_p = imagecreatetruecolor($new_width, $new_height);
$image_f = imagecreatetruecolor($desired_width, $desired_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Adjust position
switch($position)
{
case("topleft"):
$x = $bordersize;
$y = $bordersize;
break;
case("topright"):
$x = $new_width - $desired_width + $bordersize;
$y = $bordersize;
break;
case("bottomleft"):
$x = $bordersize;
$y = $new_height - $desired_height + $bordersize;
break;
case("bottomright"):
$x = $new_width - $desired_width + $bordersize;
$y = $new_height - $desired_height + $bordersize;
break;
case("center"):
$x = ($new_width - $desired_width) / 2 + $bordersize;
$y = ($new_height - $desired_height) / 2 + $bordersize;
break;
}
// Resample with 1px border
imagecopyresampled($image_f, $image_p, $bordersize, $bordersize, $x, $y, $desired_width - 2 * $bordersize,
$desired_height - 2 * $bordersize,
$desired_width - 2 * $bordersize,
$desired_height - 2 * $bordersize);
return $image_f;
}
[/php]
et voici le résultat dans mon formulaire :cry:
Warning: Cannot modify header information - headers already sent by (output started at z:\easyphp1-8\www\antiquite\antiquitebdd\saisiephotossite.php:42) in z:\easyphp1-8\www\antiquite\antiquitebdd\saisiephotossite.php on line 312
ÿØÿà et ainsi de suite avec tout un tas de caractères tous plus bizarres les uns que les autres...
Petite précision au cas où cela aurait une certaine importance les fichiers que je récupère sont sous la forme nom du fichier.jpg et je me demande si dans les fonctions le fait que l'extension ne soit pas .jpeg ne fous pas le bazar ?!
Quelqu'un aurait-il la gentillesse de me dire ce qui cloche la dedans?
Merci d'avance
Kroc69 :oops: ](*,)