Script PHP - PHP - Programmation
Marsh Posté le 03-09-2003 à 21:00:56
Si c'est la couleur qui pose problème, il faut employer imageCreateTrueColor... Sinon, demande à l'auteur du script. Nous on est pas là pour ce genre de chose...
Marsh Posté le 03-09-2003 à 21:22:32
et le script ci-dessus fait aussi appel à celui-ci. le problème vient peut-être de là:
<?
$image = ImageCreateFromJPEG($fichier);
$width = imagesx($image) ;
$height = imagesy($image) ;
$new_width = 150;
$new_height = ($new_width * $height) / $width ;
$thumb = imagecreate($new_width,$new_height);
imagecopyresized($thumb,$image,0,0,0,0,$new_width,$new_height,$width,$height);
header("Content-type:image/jpeg" );
$urlphoto = "/home/zepeople/www/thumbs/"."$soiree"."/"."$file2";
imagejpeg($thumb, $urlphoto);
imagedestroy($image);
imagedestroy($thumb);
?>
Marsh Posté le 03-09-2003 à 21:48:28
Quel est le problème exactement ? Est-ce seulement un problème d'image pas précise ou de très mauvaise qualité ? Ou est-ce que tes miniatures sont trop sombres ?
Marsh Posté le 03-09-2003 à 21:50:52
les photos son de très bonne qualité: je les mets en miniatures avec un programme sur mon PC sans problème
par contre quand c'est le script qui fait le travail les miniatures sont très très très sombres justement! ça vient d'où??
merci de ton aide
Marsh Posté le 03-09-2003 à 21:52:24
je crois qu'il t'a déjà répondu > imageCreateTrueColor au lieu de imageCreate...
Marsh Posté le 03-09-2003 à 21:54:04
alexesc a écrit : ça marche pas |
C'est à dire ? ça fait toujours pareil ? Tu es sûr qu'il n'y a pas d'autre imageCreate qui trainent...
Marsh Posté le 03-09-2003 à 21:57:47
je verifie....
mais pourquoi est ce que ça a tout d'un coup cesse de marcher normalement? une nouvelle version de php est sortie?
Marsh Posté le 03-09-2003 à 22:16:18
vlà plus un seul ki traine et j'ai une erreur en plus:
Fatal error: Call to undefined function: imagecreatetruecolorjpeg() in /home/zepeople/www/admin/requete1.php3 on line 24
Marsh Posté le 03-09-2003 à 22:26:02
alexesc a écrit : vlà plus un seul ki traine et j'ai une erreur en plus: |
Personne t'as dit de remplacer "ImageCreateFromJPEG" ??
Seulement les imageCreate.
Voilà pourquoi il faut que tu te mettes un minimum au PHP... Et je répète également pour ton info, que ce genre de question n'a rien à faire ici. On dépanne, mais il ne faudrait pas que ce genre de question reviennent continuellement.
Marsh Posté le 03-09-2003 à 22:31:13
voilà g remplacé le mot 'imageCreate' ça fait donc ça pour moi: 'imageCreateTrueColorFromJPEG'
si c pas ça tu peux ppas me dire exatement ce qu'il faut mettre dans la ligne stp? ça me sauverait la vie!!!
Marsh Posté le 03-09-2003 à 22:32:27
alexesc a écrit : voilà g remplacé le mot 'imageCreate' ça fait donc ça pour moi: 'imageCreateTrueColorFromJPEG' |
NON, il ne FAUT PAS remplacer les imageCreateFromJpeg, mais seulement les imageCreate !!!!!!
Marsh Posté le 03-09-2003 à 22:34:05
aten c pas le mot image create???
c koi image create???
Marsh Posté le 03-09-2003 à 22:36:55
alexesc a écrit : aten c pas le mot image create??? |
C'est imagecreate en UN SEUL mot qu'il faut remplacer, et tu vas devoir le faire à la main, vu que imageCreateFromJpeg contient aussi imagecreate, mais ne doit PAS être touché.
Marsh Posté le 03-09-2003 à 22:40:28
alexesc a écrit : c'est fait mais ça marche toujours pas |
ça fait quoi ? une erreur ? Ou toujours un problème de couleur ?
Marsh Posté le 03-09-2003 à 22:44:34
alexesc a écrit : exactement le même problème de couleur.... |
humm bisarre. A mon avis, tu dois avoir d'autres parties en PHP qui sont appellées et qui utilisent imagecreate.
Marsh Posté le 03-09-2003 à 22:49:01
alexesc a écrit : mais à quoi ça sert ce script exaxctement???? |
A redimensionner les images. Mais ça tu le savais déjà non ?
Marsh Posté le 03-09-2003 à 22:50:17
alexesc a écrit : aten c pas le mot image create??? |
Au fait, j'ai oublié de te dire : ici on écrit correctement, relis les rêgles du forum.
Marsh Posté le 03-09-2003 à 22:54:14
alexesc a écrit : lol c abrégé |
Je sais, mais ce genre d'abréviation est interdit ici. c'est comme ça. Seuls les c au lieu de c'est sont tout juste tolérés.
Marsh Posté le 03-09-2003 à 23:41:15
Tu utilise la librairie GD 1.0.
Pour avoir des images de bonnes qualité et la fonction createImageTrueColor, il faut utiliser la version 2.0 de GD.
Si tu fais tourner ton script en local modifie tes parametres de PHP, la 2.0 est livrée avec mais c'est la 1.0 qui est utilisée par défaut.
/!\ : ne pas activer la GD1 et GD2 ensemble => ca marche pas
dans le php.ini, enelver le ";" devant la version 2 et en mettre un devant la 1.0 :
-sous Windows : ca doit etre configuré comme cela :
Code :
|
-sous Linux (je suis pas sur) :
Code :
|
Voila !
edit : voir ceci pour plus d'infos :
http://fr2.php.net/manual/fr/ref.image.php
Marsh Posté le 04-09-2003 à 11:06:07
alexesc, est-ce que tu pourrai nous dire si c'est ca la solution ou pas.
Il est toujours bon de dire si le problème est résolu ou pas, ca aidera les autres utilisateurs du forum qui ont le meme problème de savoir précisement la solution.
Et puis j'aimerai aussi savoir si j'ai raison!
Marsh Posté le 03-09-2003 à 20:53:32
ça fait des années que ce script redimentionne des photos qui étaient en 640X480 en 150X112 et là ça marche mais les miniatures sont d'une qualité abominable!
d'où est ce que ça peut venir?? Y a t-il une nouvelle version Php??
Le code est le suivant:
$rep=opendir($repertoire);
$i=0;
while ($fichier=readdir($rep))
{
if( substr($fichier,-3)=="JPG" or substr($fichier,-3)=="jpg" )
{
$url_photo = "$path_photos"."$fichier";
$url_tn = "$path_tn"."$fichier";
$image = ImageCreateFromJPEG($url_photo);
$largeur = imagesx($image);
$hauteur = imagesy($image);
imagedestroy($image);
$ajout = $mysql->query("INSERT INTO photos_vues VALUES ('$soiree', '$fichier', '0', '', '0', '$largeur', '$hauteur')" );
}
}
closedir($rep);
echo "<br>C'est dans la base...<br>NE REEXECUTE JAMAIS CE SCRIPT !";
echo "<br><br><p align=center><font face=verdana size=2>Création des Thumbnails...</font></p>";
$repertoire = "../photos/";
$repertoire .= "$soiree";
$repertoire1 = "photos/";
$repertoire1 .= "$soiree";
$path_photos = "$repertoire1"."/";
$rep=opendir($repertoire);
while ($fichier=readdir($rep))
{
if( substr($fichier,-3)=="JPG" or substr($fichier,-3)=="jpg" )
{
$url_photo = "$path_photos"."$fichier";
echo "<img src=../tn5.php3?fichier=$url_photo&file2=$fichier&soiree=$soiree border=0 width=5 height=5>";
}
}
closedir($rep);
echo "<br><br><p align=center><font face=verdana size=1>Réalisation <a href=mailto:steeve@docteur-pc.fr>Steeve</a> (Staff ThePeople)</font></p>";
$mysql->close();
?>
merci de votre aide