Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
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 14/09/2006, 15h02   #1
Invité de passage
 
Inscription : mai 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 9
Points : 4
Points : 4
Envoyer un message via AIM à generalalaczar
Par défaut [ImageMagick] enregistrement d'images

Bonjour.

Voila, je souhaite développer un petit outils d'upload d'images. Pour l'upload c'est OK. Mais je souhaite pouvoir modifier mon image(sa taille) via un formulaire puis l'enregistrée sur le serveur. J'ai réussi à retaillé l'image avec GD mais c'est iniquement à l'affichage. Comment l'enregistré sur le serveur avec sa nouvelle taille.

Merci d'avance
generalalaczar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 15h18   #2
Membre régulier
 
Homme Matthieu
Consultant informatique
Inscription : janvier 2003
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 134
Points : 79
Points : 79
bonjour

tu fais ton redimensionnement dans un buffer avec ob_start, et ob_get_clean. le buffer tu le sauve dans ton fichier de destination avec file_get_contents.
Bien cordialement
ermelir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 10h32   #3
Invité de passage
 
Inscription : mai 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 9
Points : 4
Points : 4
Envoyer un message via AIM à generalalaczar
Hello, et merci pour la réactivité.

Je débute en PHP, mais je me passionne... Aurais tu un exemple ou quelques lignes, car là, j'avoue être un peu dépassé...
generalalaczar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 10h51   #4
Invité de passage
 
Inscription : mai 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 9
Points : 4
Points : 4
Envoyer un message via AIM à generalalaczar
Par défaut Solution

Pfouaille, la vache, j'ai trouver un truc super simple sur le forum

Voici ma source de test... et ça fonctionnne

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/************************************************************/
$filename = 'images/maquette03.jpg';
	$percent = 0.5;
 
	// Content type	
	header("Content-Type:image/jpeg");
 
	// Calcul des nouvelles dimensions
	list($width, $height) = getimagesize($filename);
	$new_width = $width * $percent;
	$new_height = $height * $percent;
 
   	$imageTemp=imagecreatetruecolor($new_width, $new_height);
 
  	$image = imagecreatefromjpeg($filename);
 
   imagecopyresized($imageTemp, $image,100, 0, 0, 0, $new_width, $new_height, $width, $height);
 
   ////// et voici : en 2eme parametre le chemin d'enregistrement /////
   imagejpeg($imageTemp, "images/essai.jpg");
 
/*************************************************************/
Les explicattions:
http://www.developpez.net/forums/sho...d.php?t=208246

Merci...
generalalaczar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 10h59   #5
Invité de passage
 
Inscription : mai 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 9
Points : 4
Points : 4
Envoyer un message via AIM à generalalaczar
Par défaut Soucis...

Hello...


par contre mon image est bien redimentionnée. mais avec un bord noir sur la gauche, et donc est rognée sur la droite du coup...

Z'avez une petite idée...
generalalaczar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 11h15   #6
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
oui :

Code :
imagecopyresized($imageTemp, $image,100, 0, 0, 0, $new_width, $new_height, $width, $height);
http://fr2.php.net/Fr/imagecopyresized

Utilise les balises CODE aussi pour ton code php, c'est plus lisible (symbole # dans l'editeur)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 12h34   #7
Invité de passage
 
Inscription : mai 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 9
Points : 4
Points : 4
Envoyer un message via AIM à generalalaczar
Ok, effectivement l'erreur était enorme.

Merci pour l'info de la balise CODE
generalalaczar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 19h17   #8
Membre régulier
 
Homme Matthieu
Consultant informatique
Inscription : janvier 2003
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 134
Points : 79
Points : 79
bonjour

en gros tu entoures ton traitement par de la bufferisation
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
 
/**
 * debut de la bufferisation
 */
 ob_start();
/**
 * debut de ton script de redimensionnement
 */
$filename = 'images/maquette03.jpg';
$percent = 0.5;
 
// Content type
header("Content-Type:image/jpeg");
 
// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
 
$imageTemp=imagecreatetruecolor($new_width, $new_height);
 
$image = imagecreatefromjpeg($filename);
 
imagecopyresized($imageTemp, $image,100, 0, 0, 0, $new_width, $new_height, $width, $height);
 
////// et voici : en 2eme parametre le chemin d'enregistrement /////
imagejpeg($imageTemp, "images/essai.jpg");
/**
 * fin de la bufferisation
 * tu recuperes ton image du buffer
 */
$image_content = ob_get_clean();
/**
 * ensuite tu le sauvegardes, si j'ai bien compris ce que tu voulais faire...
 */
...
cordialement
ermelir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 19h31   #9
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
NON ! la bufferisation ici ne sert strictement a rien puisque rien n'est produit par php (a part d'eventuels messages d'erreurs) car tu met un 2eme parametre a la fonction imagejpeg... Regle n°4 de ma signature
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag 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 06h02.


 
 
 
 
Partenaires

Hébergement Web