Créer une miniature

Créer une miniature - PHP - Programmation

Marsh Posté le 28-02-2006 à 18:52:05    

Bonjours, je suis en train de faire un script pour créer une miniature a partir d'une image présente sur le serveur.
 
Voici le bout de code :
 

Citation :

      $scr = './album/' . $name;
      $width = $infos_img[0];
      $height = $infos_img[1];
 
      while (($width > 300) and ($height > 200)) //Redimension
      {
          $height = ($height/10)*9;
          $width = ($width/10)*9;
      } // Fin redimension
 
      if ($infos_img[2] == 2) {$dest = imagecreatefromjpeg('./miniature/min_' . $name);}
      if ($infos_omg[2] == 3) {$dest = imagecreatefrompng('./miniature/min_' . $name);}
 
      $min = imagecopyresampled($dest, $src, 0, 0, 0, 0, $width, $height, $infos_img[0], $infos_img[1]);


 
 
Le script ne marche pas, je sais que j'utilise mal les paramètre.
 
J'aimerais donc que quelqu'un m'explique en imagé a quoi sert la fonction imagecreatefromjpg, parceque je ne suis pas sur de la situer avec ce que j'ai trouvé sur internet ou dans un livre.
 
Merci.
 
Siron


Message édité par Siron le 28-02-2006 à 18:53:23
Reply

Marsh Posté le 28-02-2006 à 18:52:05   

Reply

Marsh Posté le 28-02-2006 à 18:57:57    

ça créé un objet image à partir d'une autre image

Reply

Marsh Posté le 28-02-2006 à 19:03:02    

Un objet ? Une image virtuel en quelque sorte (non présente physiquement sur le dd) ?

Reply

Marsh Posté le 28-02-2006 à 19:06:43    

j'en ai également besoin de ça sur mes sites et j'avais trouvé ce site
 
http://www.asp-php.net/scripts/asp [...] php?page=2
 
la 2e leçon est très pratique car tu peux recréer tes images en diminuant le poids des images
 
En espérant que ce lien t'aide autant qu'il m'a aidé.
 
PS : ah oui il y avait un problème ac  $dst_im = ImageCreate($dst_w,$dst_h);
 
je te conseille d'utiliser plutôt ImageCreateTrueColor qui te permettra d'avoir des images de + de 256 couleurs. Sinon ca passera mal.
 
Bonne chance

Reply

Marsh Posté le 28-02-2006 à 23:18:37    

Citation :

     if ($sql_image) // test de l'operation mysql
      {
      $width = $infos_img[0];
      $height = $infos_img[1];  
      while (($width > 300) or ($height > 200)) //Redimension
      {
      $height = ($height/10)*9;
      $width = ($width/10)*9;
      } // Fin redimension
      $dest = imagecreatetruecolor($width, $height);
      if ($infos_img[2] == 2) {$src = imagecreatefromjpeg('./album/' . $name);}
      if ($infos_omg[2] == 3) {$src = imagecreatefrompng('./album/' . $name);}
      $min = imagecopyresampled($dest, $src, 0, 0, 0, 0, $width, $height, $infos_img[0], $infos_img[1]);
      if ($infos_img[2] == 2) {imagejpeg($dest , './miniature/min_' . $name, 100);}
      if ($infos_omg[2] == 3) {imagepng($dest , './miniature/min_' . $name);}
      imagedestroy($dest);  
         imagedestroy($src);


 
Comme ça, ça fonctionne, je me suis inspiré de ton lien newneo2001 pour comprendre le principe de manipulation d'image en php.
 
Sinon j'ai deux autres questions :
move_uploaded_file est bien sencé renvoyer un boolean ?  Parceque quand l'opération réussi chez moi, elle renvoit 1.
Dans une requete sql faite a partir de php comme mysql_query('SELECT * FROM $toto ....
Peut-on mettre la variable php qui désigne la table comme je l'ai fait ?  Ou faut-il faire FROM ' . $toto . '.... ?
 
Merci pour l'aide.

Reply

Marsh Posté le 01-03-2006 à 00:45:47    

Citation :


Sinon j'ai deux autres questions :
move_uploaded_file est bien sencé renvoyer un boolean ?  Parceque quand l'opération réussi chez moi, elle renvoit 1.


 
http://fr.php.net/manual/fr/functi [...] d-file.php
 
je lis :
bool move_uploaded_file ( string filename, string destination )
 
et
 Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.
 
Tu as ta réponse, oui c'est bien booléen
 

Citation :


Dans une requete sql faite a partir de php comme mysql_query('SELECT * FROM $toto ....
Peut-on mettre la variable php qui désigne la table comme je l'ai fait ?  Ou faut-il faire FROM ' . $toto . '.... ?


 
Là ca dépend de coment tu parses ta requête. Il faut faire la différence entre simple et double quote
 
simple quote affiche sans parser, double quotes parse.
parser : remplacer les variables par leur contenu
 
en gros si tu fais
$toto = 'matable';
'SELECT * from $toto' ca va te donner SELECT * from $toto
"SELECT * from $toto" ca va te donner SELECT * from matable
 
Comme conseil je peux te dire que simple quote est plus rapide que double quote. Mais bon c'est vraiment invisible sur une page. C'est juste qu'il faut le savoir.
 
Ensuite si tu veux savoir ce que ca donne, n'hésite pas à débugguer
 
$sql = 'SELECT * from $toto';
 
echo $sql;
die;
 
tu verras bien ce que ca donne comme ca ;)
 
Bonne chance

Reply

Marsh Posté le 01-03-2006 à 09:18:10    

J'ai enfin compris une des différences entre le ' et le " lol.
 
Pour move_uploaded_file, j'ai bien vu que c'était une boolean, mais il me renvoit 1 au lieu de true quand ça marche.
Je sais pas pourquoi, c'est pas très embétant mais je dois adapter mes tests de réussites en conséqence.
 
Merci pour l'aide.

Reply

Marsh Posté le 01-03-2006 à 10:07:39    

booléen  
 
1 = true
0 = false
 
http://www.manuelphp.com/php/langu [...] oolean.php
 
un petit conseil pour tester tes requetes plus simplement. Tu peux faire

Code :
  1. if (move_uploaded_file()){
  2. // c bon
  3. }
  4. else{
  5. //c pas bon
  6. }


et ca résout tous tes problèmes ;)
 
@++


Message édité par newneo2001 le 01-03-2006 à 10:08:26

---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 01-03-2006 à 10:13:18    

Oui mais j'ai pas mal d'opération en cascade, donc je sais pas si je vais changer vu que grosso modo c'est pareil avec t'a méthode ou la mienne (je passe rarement avec des algo sur papier, et donc je reconnais que parfois c'est le bordel mes codes, même si je m'améliore dans le domaine de l'impro).
 
Sinon, je savais pas que les booleans en php sont sous forme 1 ou 0, ou alors c'est mixtes ?
1 et true pour vrai et 0 et false pour faux ?


Message édité par Siron le 01-03-2006 à 10:15:11
Reply

Marsh Posté le 01-03-2006 à 10:19:23    

je dirais plutôt que c'est mixte. Mais là c'est sans affirmation, je me suis jamais posé la question parce que ca ne m'a jamais posé problème.
 
Disons qu'avec ma méthode tu économises une variable. Après c'est vrai qu'il faut voir si tu t'en ressers plus loin de ta variable.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed