8795 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'utilise un script php permettant de réduire à une taille donnée une image obtenue à partir d'un lien internet. J'entre l'adresse url de l'image dans un formulaire, cette adresse correspond à la variable $image.

Voici le script :


$picture = $image ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png

$x = 41;
$y = 46; # Taille en pixel de l'image redimensionnée

$size = getimagesize($picture);

if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($picture); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)	or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagejpeg($img_mini,$picture );
}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($picture); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)	or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagepng($img_mini,$picture );
}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($picture); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)	or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagegif($img_mini,$picture );
}

//affichage de l'image
echo "<a href=\"\"><img style=\"border: 0;\" src=\"" . $picture . "\" alt=\"" . $titre . "\" title=\"" . $titre . "\" /></a>";


Sur mon site, le dimensionnement ne s'effectue pas et j'obtiens le warning :
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'http://www.site.fr/image.jpg' for writing: No such file or directory in...

Quelqu'un pourrait-il m'aider ?

Merci d'avance
Modifié par Killamasta60 (23 Nov 2010 - 09:49)
Bonsoir,

je pense que vous sauvegardez avec la fonction imagejpeg en lui passant une adresse http au lieu de lui donner un chemin sur le disque. Il faut différencier la partie PHP qui s'exécute sur le et manipule des fichiers du disque dur du serveur et le coté client qui communique et va chercher l'image de la balise img grâce au protocole http.
En effet, ça serait bien de connaître le contenu exacte de $picture...
Lien relatif ou absolu ? l'image se trouve sur le même serveur ?
As-tu tester l'url de l'image qui est renvoyé par le code erreur php ?
Bonjour,

En effet, il s'agit d'un lien absolu venant d'un autre site.
Je me disais bien qu'il fallait que le fichier se trouve sur mon ftp pour convertir l'image.

Merci Smiley smile
Killamasta60 a écrit :
Bonjour,

En effet, il s'agit d'un lien absolu venant d'un autre site.
Je me disais bien qu'il fallait que le fichier se trouve sur mon ftp pour convertir l'image.

Merci Smiley smile


Si tu connais le lien vers une image située sur un autre site, tu peux tout à fait aller la chercher avec php, la mettre chez toi puis la traiter. Smiley cligne
Bonsoir,

Je m'intéresse de très près à cette fameuse librairie GD de PHP. Je me permet de pimenter un peu le sujet, j'ai vu des scripts qui permettait d'afficher une image dynamique dans un fichier php. Ce qui a l'avantage de n'avoir qu'une seule image sur le serveur et d'envoyer la miniature souhaité au navigateur.

http://www.lephpfacile.com/cours/22-la-librairie-gd

Malheureusement mes tentatives pour réussir à le faire fonctionner sont pas très concluante.
Quelqu'un l'aurait-il déjà utilisé ?
Modérateur
Bonjour Majimerse,

Merci de bien vouloir créer ton propre sujet pour poser ta question. Non seulement c'est la tradition ici, mais cela t'aideras à obtenir plus de réponses. Comme le sujet est indiqué comme Résolu, les autres membres risquent de passer leur chemin et de ne pas voir ta question.