Générer une icône

Répondre
jacque99
jacque99
Déconnecté
jacque
Bonjour tout le monde,
Au fait, je suis un débutant en programmation, et je cherche un petit script en PHP ou bien JavaScript.
Le but de script est de générer une icône à partir d'une image.
L'icône on peut l'apprendre de n'importe quelle partie de l'image.
Merci pour vos conseils
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Pour générer une icone, je te suggère tout d'abord de lire le cours sur la librairie GD.

Ensuite, il te faudra utiliser la fonction imagecopyresampled.
jacque99
jacque99
Déconnecté
jacque
Voici un code source qui marche bien pour redimensionné une image proportionnellement.J'espère faire des modifications pour juste prendre une morceau quelconque d'une image en 95*95. Merci

index.php
  1.  
  2. <html>
  3. <head></head>
  4. <body>
  5.    <!--On affiche le formulaire d'envoi d'une image-->
  6.    <center>
  7.    <br /><hr />
  8.  
  9.    <form method="post" enctype="multipart/form-data" action="upload.php">
  10.    <p>
  11.    
  12.    
  13.    
  14.     Le nom de l'image redimensionner avec 95 ,95
  15.     <input type="text" name="video"><br><br>
  16.    
  17.    
  18.    
  19.    <input type="file" name="fichier" size="30">
  20.    <input type="submit" name="upload" value="Uploader">
  21.    </p>
  22.    </form>
  23.    </center>
  24.    
  25. </body>
  26. </html> 


upload.php
  1.  
  2. <?php
  3.  
  4.  
  5. $nomImage=$_POST['video'];  
  6.  
  7. if( isset($_POST['upload']) ) // si formulaire soumis
  8. {  
  9. $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  10.  
  11. $tmp_file = $_FILES['fichier']['tmp_name'];  
  12.  
  13. if( !is_uploaded_file($tmp_file) )  
  14. {  
  15. exit("Le fichier est introuvable");  
  16. }  
  17.  
  18. // on vérifie maintenant l'extension
  19. $type_file = $_FILES['fichier']['type'];  
  20.  
  21. if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )  
  22. {  
  23. exit("Le fichier n'est pas une image");  
  24. }  
  25.  
  26. // on copie le fichier dans le dossier de destination
  27.    
  28.    $ext = substr($_FILES['fichier']['name'], strrpos($_FILES['fichier']['name'], '.')); 
  29.  
  30.    $name_file = $nomImage.$ext; 
  31.    echo $name_file; 
  32.  
  33.  
  34.    //fonction pour changer les dimentions des fichiers
  35. function redimensionner($file, $maxwidth, $maxheight) {  
  36. /*
  37. $maxwidth = 171;
  38. $maxheight = 171;
  39. */  
  40. list($rawwidth, $rawheight, $type) = @getimagesize($file);  
  41.  
  42. if ($maxwidth < $rawwidth && $rawwidth >= $rawheight) {  
  43.  
  44. $width = $maxwidth;  
  45.  
  46. $height = ($width / $rawwidth) * $rawheight;  
  47.  
  48. }  
  49.  
  50. elseif ($maxheight < $rawheight && $rawheight >= $rawwidth) {  
  51.  
  52. $height = $maxheight;  
  53.  
  54. $width = ($height /$rawheight) * $rawwidth;  
  55.  
  56. }  
  57.  
  58. else {  
  59.  
  60. $height = $rawheight;  
  61.  
  62. $width = $rawwidth;  
  63.  
  64. }  
  65.  
  66. $imgbuffer = imagecreatetruecolor($width, $height);  
  67.  
  68. switch($type) {  
  69.  
  70. case 1: $image = imagecreatefromgif($file); break;  
  71.  
  72. case 2: $image = imagecreatefromjpeg($file); break;  
  73.  
  74. case 3: $image = imagecreatefrompng($file); break;  
  75.  
  76. case 4: $image = imagecreatefrombmp($file); break;  
  77.  
  78. default: exit("Tried to create thumbnail from$file: not a valid image");  
  79.  
  80. }  
  81.  
  82. if (!$image) exit("Image creation from$filefailed for an unknown reason. Probably not a valid image.");  
  83.  
  84. else {  
  85.  
  86. imagecopyresampled($imgbuffer, $image, 0, 0, 0, 0, $width, $height, $rawwidth, $rawheight);  
  87.  
  88. imageinterlace($imgbuffer);  
  89.  
  90. switch($type) { 
  91.  
  92.    
  93.    
  94.    
  95. case 1: $image = imagegif($imgbuffer, $file, 80); break;  
  96.  
  97. case 2: $image = imagejpeg($imgbuffer, $file, 80); break;  
  98.  
  99. case 3: $image = imagepng($imgbuffer, $file, 7); break;  
  100.  
  101.  
  102.  
  103. }  
  104.  
  105. }  
  106.  
  107. }  
  108.  
  109.  
  110. if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )  
  111.  
  112. {  
  113.  
  114. exit("Nom de fichier non valide");  
  115.  
  116. }  
  117.  
  118. else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  
  119.  
  120. {  
  121.  
  122. exit("Impossible de copier le fichier dans$content_dir");  
  123.  
  124. }  
  125.  
  126. redimensionner($content_dir.$name_file,95, 95);  
  127.  
  128. }  
  129. ?> 
jacque99
jacque99
Déconnecté
jacque
Bonjour tout le monde,
J’ai reformulé ma question à nouveau
J'ai un scripte pour redimensionner les images proportionnellement, il prend la plus grande valeur (hauteur ou bien largeur) , et il redimensionne l'autre valeur proportionnellement.
Le seul problème sur ce script c'est qu’il ne permet pas de définir longueur max et hauteur max.

Par exemple, je voulais générer une image avec : width max : 171 et height max : 107
Si je prends une image avec les démentions width : 420, et height 298, le redimensionnement proportionnel cava donner :
420 >> 298
171 >> x
x= (298*171)/420= 121 (plus grand que je voulais comme hauteur en max 107).
Ce que j'image faire, mais je ne sais pas encore comment, c'est de lancer une boucle pour obtenir :
H >> W
171 >> 121 (supérieur de mon max, je ne prends pas) je fais H - 1
170 >> 120 (supérieur de mon max, je ne prends pas) je refais H-1
.....................................
.....................................
.....................................
150 >> 107 (<= 107, je le prends)
Ce qui est important pour moi c'est de respecter le redimensionnement proportionnel pou ne pas déformer l'image, et en même temps ne pas dépasser les démentions max.
Je suis à l'écoute de vos commentaires.
Merci d'avance
  1.  
  2. //****************************************index.php
  3.  
  4. <html>
  5. <head></head>
  6. <body>
  7. <!--On affiche le formulaire d'envoi d'une image-->
  8. <center>
  9. <br /><hr />
  10.  
  11. <form method="post" enctype="multipart/form-data" action="upload.php">
  12. <p>
  13.  
  14.  
  15.  
  16. Le nom de l'image redimensionner avec 95 ,95
  17. <input type="text" name="video"><br><br>
  18.  
  19.  
  20.  
  21. <input type="file" name="fichier" size="30">
  22. <input type="submit" name="upload" value="Uploader">
  23. </p>
  24. </form>
  25. </center>
  26.  
  27. </body>
  28. </html>
  29.  
  30.  
  31. //****************************************upload.php
  32.  
  33. <?php
  34.  
  35.  
  36. $nomImage=$_POST['video'];  
  37.  
  38. if( isset($_POST['upload']) ) // si formulaire soumis
  39. {  
  40. $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  41.  
  42. $tmp_file = $_FILES  
  43.  
  44. ['fichier']['tmp_name'];  
  45.  
  46. if( !is_uploaded_file($tmp_file) )  
  47. {  
  48. exit("Le fichier est introuvable");  
  49. }  
  50.  
  51. // on vérifie maintenant l'extension
  52. $type_file =  
  53.  
  54. $_FILES['fichier']['type'];  
  55.  
  56. if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'bmp') && !strstr($type_file,  
  57.  
  58. 'gif') )  
  59. {  
  60. exit("Le fichier n'est pas une image");  
  61. }  
  62.  
  63. // on copie le fichier dans le dossier de destination
  64.  
  65. $ext = substr($_FILES['fichier']['name'],  
  66.  
  67. strrpos($_FILES['fichier']['name'], '.'));  
  68.  
  69. $name_file = $nomImage.$ext;  
  70. echo $name_file;  
  71.  
  72.  
  73. //fonction pour changer les dimentions des fichiers
  74. function  
  75.  
  76. redimensionner($file, $maxwidth, $maxheight) {  
  77.  
  78. list($rawwidth, $rawheight, $type) = @getimagesize($file);  
  79.  
  80. if ($maxwidth < $rawwidth && $rawwidth >= $rawheight) {  
  81.  
  82. $width =  
  83.  
  84. $maxwidth;  
  85.  
  86. $height = ($width / $rawwidth) * $rawheight;  
  87.  
  88. }  
  89.  
  90. elseif ($maxheight < $rawheight && $rawheight >= $rawwidth) {  
  91.  
  92. $height = $maxheight;  
  93.  
  94. $width = ($height /  
  95.  
  96. $rawheight) * $rawwidth;  
  97.  
  98. }  
  99.  
  100. else {  
  101.  
  102. $height = $rawheight;  
  103.  
  104. $width = $rawwidth;  
  105.  
  106. }  
  107.  
  108. $imgbuffer = imagecreatetruecolor($width, $height);  
  109.  
  110. switch($type) {  
  111.  
  112. case 1: $image =  
  113.  
  114. imagecreatefromgif($file); break;  
  115.  
  116. case 2: $image = imagecreatefromjpeg($file); break;  
  117.  
  118. case 3: $image = imagecreatefrompng($file); break;  
  119.  
  120. case 4: $image =  
  121.  
  122. imagecreatefrombmp($file); break;  
  123.  
  124. default: exit("Tried to create thumbnail from$file: not a valid image");  
  125.  
  126. }  
  127.  
  128. if (!$image) exit("Image creation from$filefailed for an
  129.  
  130. unknown reason. Probably not a valid image.");  
  131.  
  132. else {  
  133.  
  134. imagecopyresampled($imgbuffer, $image, 0, 0, 0, 0, $width, $height, $rawwidth, $rawheight);  
  135.  
  136. imageinterlace  
  137.  
  138. ($imgbuffer);  
  139.  
  140. switch($type) {  
  141.  
  142.  
  143.  
  144.  
  145. case 1: $image = imagegif($imgbuffer, $file, 80); break;  
  146.  
  147. case 2: $image = imagejpeg($imgbuffer, $file, 80);  
  148.  
  149. break;  
  150.  
  151. case 3: $image = imagepng($imgbuffer, $file, 7); break;  
  152.  
  153.  
  154.  
  155. }  
  156.  
  157. }  
  158.  
  159. }  
  160.  
  161.  
  162. if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )  
  163.  
  164. {  
  165.  
  166. exit("Nom de fichier non valide");  
  167.  
  168. }  
  169.  
  170.  
  171.  
  172. else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )  
  173.  
  174. {  
  175.  
  176. exit("Impossible de copier le fichier dans$content_dir");  
  177.  
  178. }  
  179.  
  180. redimensionner($content_dir.$name_file,171,  
  181.  
  182. 107);  
  183.  
  184. }  
  185. ?>
  186.  
  187.  
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique