Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 00h58   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Par défaut Warning: imagecopyresampled() expects parameter 1 to be resource, string given in. etc

Bonjour,

A partir d'un script, j'ai implémenté quelques fonctions supplémentaires sauf que je n'arrive pas à faire fonctionner le imagecopyresampled.

A cette étape, le fichier est copié mais ensuite je voudrais tout de suite le resizer après l'upload en gardant le même nom...

Voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $rep . $fichier)) 
     {
        $maxw = 150;//la vignette ne devra pas dépasser 150px de large
	list($width, $height) = getimagesize($rep.$fichier);//récup des dimensions 
	$ratio = $width/$maxw;//on définit le ratio pour recalculer la hauteur
	$newh = round($height/$ratio);//nouvelle hauteur
	imagecopyresampled($rep."/".$fichier, $rep."/".$fichier,0,0,0,0,$maxw,$newh,$width,$height);//resize qui ne fonctionne pas
 
	echo '<script>alert("Good !")</script>';//tout est ok !
     }
J'espère que vous pourrez m'aider.

PHPïquement,

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 09h05   #2
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

L'erreur est simple à comprendre:
expects parameter 1 to be resource : le paramètre 1 est attendu comme ressource
string given : une exdpression (nom de fichier...) est donné.

Pour faire ton imagecopyresampled correctement, il faut que tu définisses d'abord les ressources des images entrée et sortie :
Code :
1
2
3
4
5
6
7
8
9
10
11
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $rep . $fichier)) 
     {
        $maxw = 150;//la vignette ne devra pas dépasser 150px de large
	list($width, $height) = getimagesize($rep.$fichier);//récup des dimensions 
	$ratio = $width/$maxw;//on définit le ratio pour recalculer la hauteur
	$newh = round($height/$ratio);//nouvelle hauteur
	$image_sortie = imagecreatetruecolor($new_width, $new_height);
	$image_entree= imagecreatefromjpeg($rep."/".$fichier);
	imagecopyresampled($image_sortie,$image_entree,0,0,0,0,$maxw,$newh,$width,$height)
        echo '<script>alert("Good !")</script>';//tout est ok !
}
J'ai fait ça vite fait, j'ai pas d'exemple autre sous les yeux.
Ce qu'il faut comprendre c'est que tu dois passer par une ressource, et non par le fichier directement (string given).
}
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 14h28   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Bonjour et merci à toi lenono !

Je n'ai plus le message d'erreur mais l'image uploadée ne se redimensionne pas pour autant

C'est comme-ci le script ne tenait pas compte de :
Code :
1
2
3
$image_sortie = imagecreatetruecolor($new_width, $new_height);
$image_entree= imagecreatefromjpeg($rep."/".$fichier);
imagecopyresampled($image_sortie,$image_entree,0,0,0,0,$maxw,$newh,$width,$height)
mais juste de l'upload initial 1024x768.

Une idée ?

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 14h41   #4
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
imagejpeg() est la solution visiblement mais qu'en est-il si j'utilise des gif, png ou autre ?

Merci de ton/votre aide.

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 22h41   #5
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Re re re,

J'ai "switché" l'extension et selon l'extension j'appelle imagejpg(), imagegif() ou imagepng().

MERCI !!!!!!!!!
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 07h38   #6
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Je n'ai pas pu répondre hier, mais tant mieux !
L'avantage de trouver des solutions seul, c'est qu'on les retient
Bravo
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h17.


 
 
 
 
Partenaires

Hébergement Web