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 16/12/2006, 11h34   #1
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 110
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2006
Messages : 110
Points : 31
Points : 31
Par défaut [ImageMagick] image noire (débutant)

Bonjour.

J'ai un formulaire d'image qui me renvoie des images (jpeg,png,gif ou bmp).
Une fois que l'image est sur mon ftp, je la compresse en jpeg à 75% et j'en crée une miniature.

Tout marchait bien jusqu'à ce que je fasse une petite manip. Depuis, l'image créé est noire.

Voilà le code :
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
38
39
40
41
42
function optimisation($photo,$largeur_mini,$cheminpicsmembres,$cheminpicsupload,$cheminminiatures,$jpegquality,$ftype,$ftp){
       $conn_id	  				= ftp_connect($ftp[0]);
	$login_result 				= ftp_login($conn_id, $ftp[1],$ftp[2]);
	$open		  				= opendir($cheminpicsupload.$photo);
	$fichier_image				= $cheminpicsmembres.$photo;
	$photosansextension         = explode(".",$photo);
	if ($ftype=="image/jpeg"){
		$image_origine			= imagecreatefromjpeg($fichier_image);
	}
	elseif ($ftype=="image/png"){
		$image_origine			= imagecreatefrompng($fichier_image);
	}
	elseif ($ftype=="image/gif"){
		$image_origine			= imagecreatefromgif($fichier_image);
	}
	elseif ($ftype=="image/bmp"){
		$image_origine			= imagecreatefrombmp($fichier_image);
	}
	else {$photo="erreur. ftype=".$ftype.".<br />";return $photo;}
	$image_finale 			    = imagecreatetruecolor(imagesx($image_origine),imagesy($image_origine));
 
	$minidest				    = $cheminpicsupload.$photosansextension[0].".jpg";
	if (!imagejpeg($image_finale,$minidest,50)) {$photo="Erreur ImgjpegOptimisation";return $photo;}
	if (!imagedestroy($image_finale))                        {$photo="Erreur DestroyOptimisation";return $photo;}
	//ici : suppression de l'image non compressée
	$photo=$photosansextension[0].".jpg";
	//Création automatique de miniatures lors de l'ajout de nouvelles photos au grand format 
	$open		  			= opendir($cheminpicsupload.$photo);
	$fichier_image			= $cheminpicsmembres.$photo;
	$image_origine			= imagecreatefromjpeg($fichier_image);
	$largeur_origine		= imagesx($image_origine);
	$hauteur_origine 		= imagesy($image_origine);
	$hauteur_mini 			= $hauteur_origine * $largeur_mini /   $largeur_origine;
	$image_finale 			= imagecreatetruecolor($largeur_mini, $hauteur_mini);
	imagecopyresized($image_finale, $image_origine, 0, 0, 0, 0, $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
	$minidest				= $cheminminiatures."low".$photo;
	if(!imagejpeg($image_finale, $minidest,$jpegquality[1])) {$photo="Erreur ImgjpegMiniature";return $photo;}
	if(!imagedestroy($image_finale))                         {$photo="Erreur DestroyMiniature";return $photo;}
	fclose($fp);
	return $photo;
 
}
Merci
Ralfman68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 12h06   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 182
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 182
Points : 6 469
Points : 6 469
et qu'a tu fais comme manip?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 13h56   #3
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
Code :
$fichier_image = $cheminpicsmembres.'/'.$photo;
je ne sais pas si c'est juste ça qui pose problème... si tu as une image noire...

exemple d'utilisation de imagecopyresized()
je te conseil d'adapter une parti pour le FTP dessus.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Fichier et nouvelle taille
$filename = 'test.jpg';
$percent = 0.5;
 
// Content type
header('Content-type: image/jpeg');
 
// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
 
// chargement
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
 
// Redimensionnement
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
 
// Affichage
imagejpeg($thumb);
?>
Je pense que tout à l'aire bon par rapport à ton code,
par contre il est plein d'erreur:
Code :
	$open		  				= opendir($cheminpicsupload.$photo);
Code :
	$open		  			= opendir($cheminpicsupload.$photo);
je comprend pas pourquoi tu utilises ça alors que tu n'utilises pas ses variables ($open et $fp)
juJuv51 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 09h40.


 
 
 
 
Partenaires

Hébergement Web