Page 1 sur 1
Couper une partie d'une image
Posté : 20 juil. 2012, 13:42
par k77
Bonjour, j'aimerais pouvoir découper un carré (de 100px par exemple) dans une image. Ce carré serait situé à 50px du bord gauche et 50px du haut de l'image. Savez vous comment procéder ?
Merci d'avance pour votre réponse.

Re: Couper une partie d'une image
Posté : 20 juil. 2012, 14:35
par xTG
Regardes du côté de la librairie GD.
Il y a par exemple la fonction :
http://fr.php.net/manual/en/function.imagecopy.php
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 14:43
par K77
Oui merci, je l'ai essayé mais je ne suis parvenu à aucun résultat.
Pouvez vous m'aider ?
Merci d'avance.
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 14:58
par xTG
Montres nous ton essai qu'on te dise ce qui ne va pas.
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 15:21
par k77
ok voila mon code :
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Création des instances d'image
$src = imagecreatefromjpeg($_GET['img']);
$dest = imagecreatetruecolor(100, 100);
// les $_POST[ ] represente les coordeonés de l'image d'origine selectionner avec JQuery et JCROP
// Copie
imagecopy($dest, $src, 0, 0, $_POST['x'], $_POST['y'], 100, 100);
// ensuite tu copie une partie de l'image src dans l'image dest
imagecopyresampled($dst_r,$src_r,50,50,$_POST['x'],$_POST['y'],100,100,$_POST['w'],$_POST['h']);// decaler de 50px de la gauche et 50px du haut
// Affichage et libération de la mémoire
header('Content-Type: image/jpeg');
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
}
?>
merci pour votre aide
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 17:00
par xTG
Tu utilises des variables qui n'existent pas.

Et ton imagecopy() est redondant avec le imagecopyresampled().
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 17:09
par k77
Si, mes variables viennent d'une autre page et sont envoyées à celle ci par formulaire.
Je dois utilisé donc soit imagecopy(), soit imagecopyresampled(), c'est ça ?
Pouvez vous me montrer un exemple afin de réussir à couper juste un carre d'une image s'il vous plait, ça fait 4 jours que je suis dessus et pas moyen de trouver.
Merci d'avance pour votre aide
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 18:26
par xTG
$dst_r et $src_r proviennent d'une autre page ?
Ce sont des ressources image donc j'en doute...
Sinon à part cela ton utilisation de imagecopyresampled() est correcte.
Donc si l'image ne s'affiche pas correctement, actives les erreurs PHP et commentes le header().
Re: Couper une partie d'une image
Posté : 20 juil. 2012, 18:33
par k77
A effectivement, je ne pensais pas à ces variables. Merci je vais regarder et je vous tiens au courant

Re: Couper une partie d'une image
Posté : 21 juil. 2012, 18:43
par sirakawa
Même si ce n'est pas faux, je trouve malcommode de mêler les GET et les POST au code comme tu fais.
Par ailleurs je suis un peu surpris du mélange de GET et de POST.
ok voila mon code :
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Création des instances d'image
//$src = imagecreatefromjpeg($_GET['img']);
// ainsi on peut facilement vérifier les valeurs manipulées:
$jpg = ( isset ( $_GET['img'])) ? $_GET['img'] : "" ;
// ou plutôt:
if ( isset ( $_GET['img'])
{
$jpg = $_GET['img'];
//ici il serait bien de tester l'existence de l'image
}
else
{
// un traitement d'erreur
die("pas de get");
}
$src = imagecreatefromjpeg($jpg);
$dest = imagecreatetruecolor(100, 100);
// les $_POST[ ] represente les coordeonés de l'image d'origine selectionner avec JQuery et JCROP
// Copie
$x = $_POST['x']; // avec des précautions que je ne développe pas
$y = $_POST['y'];
$w = $_POST['w'];
$h = $_POST['h'];
imagecopy($dest, $src, 0, 0,$x,, 100, 100);
// ensuite tu copie une partie de l'image src dans l'image dest
imagecopyresampled($dst_r,$src_r,50,50,$x,$y,100,100,$w,$h);// decaler de 50px de la gauche et 50px du haut
// Affichage et libération de la mémoire
header('Content-Type: image/jpeg');
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
}
?>
merci pour votre aide
Re: Couper une partie d'une image
Posté : 23 juil. 2012, 10:03
par k77
Merci pour vos réponses