Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1374 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  upload + resize + ajout logo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

upload + resize + ajout logo

n°1731844
Bluntch
Posté le 14-05-2008 à 16:35:26  profilanswer
 

Bonjour bonjour,
 
j'ai un soucis dans mon script, j'utilise SWF upload :
http://demo.swfupload.org/applicationdemo/index.php
 
c'est le upload.php le bug ce trouve sans doute au niveau de la fusion des images mais je ne sais pas pourquoi ! et j'aimerai enregistré l'image dans un fichier mais je voi pas comment :s!

Code :
  1. <?php
  2. /* Note: This thumbnail creation script requires the GD PHP Extension.   
  3.  If GD is not installed correctly PHP does not render this page correctly
  4.  and SWFUpload will get "stuck" never calling uploadSuccess or uploadError
  5.  */
  6. // Get the session Id passed from SWFUpload. We have to do this to work-around the Flash Player Cookie Bug
  7. if (isset($_POST["PHPSESSID"])) {
  8.  session_id($_POST["PHPSESSID"]);
  9. }
  10. session_start();
  11. // Check the upload
  12. if (!isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) {
  13.  header("HTTP/1.1 500 Internal Server Error" );
  14.  echo "invalid upload";
  15.  exit(0);
  16. }
  17. // Get the image and create a thumbnail
  18. $img = @imagecreatefromjpeg($_FILES["Filedata"]["tmp_name"]);
  19. if (!$img) {
  20.  header("HTTP/1.1 500 Internal Server Error" );
  21.  echo "could not create image handle";
  22.  exit(0);
  23. }
  24. $width = imageSX($img);
  25. $height = imageSY($img);
  26. if (!$width || !$height) {
  27.  header("HTTP/1.1 500 Internal Server Error" );
  28.  echo "Invalid width or height";
  29.  exit(0);
  30. }
  31. // Build the big tof
  32. $target_width = 700;
  33. $target_height = 700;
  34. $target_ratio = $target_width / $target_height;
  35. $img_ratio = $width / $height;
  36. if ($target_ratio > $img_ratio) {
  37.  $new_height = $target_height;
  38.  $new_width = $img_ratio * $target_height;
  39. } else {
  40.  $new_height = $target_width / $img_ratio;
  41.  $new_width = $target_width;
  42. }
  43. if ($new_height > $target_height) {
  44.  $new_height = $target_height;
  45. }
  46. if ($new_width > $target_width) {
  47.  $new_height = $target_width;
  48. }
  49. $new_img = ImageCreateTrueColor($target_width, $target_height);
  50. if (!@imagefilledrectangle($new_img, 0, 0, $target_width-1, $target_height-1, 0)) { // Fill the image black
  51.  header("HTTP/1.1 500 Internal Server Error" );
  52.  echo "Could not fill new image";
  53.  exit(0);
  54. }
  55. if (!@imagecopyresampled($new_img, $img, ($target_width-$new_width)/2, ($target_height-$new_height)/2, 0, 0, $new_width, $new_height, $width, $height)) {
  56.  header("HTTP/1.0 500 Internal Server Error" );
  57.  echo "Could not resize image";
  58.  exit(0);
  59. }
  60. if (!isset($_SESSION["file_info"])) {
  61.  $_SESSION["file_info"] = array();
  62. }
  63.  // On charge d'abord les images
  64. $source = imagecreatefrompng("images/logo_tof.png" ); // Le logo est la source
  65. //$destination = imagecreatefromjpeg("test.jpg" ); // La photo est la destination
  66. // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
  67. $largeur_source = imagesx($source);
  68. $hauteur_source = imagesy($source);
  69. $largeur_destination = imagesx($new_img);
  70. $hauteur_destination = imagesy($new_img);
  71. // On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
  72. $destination_x = $largeur_destination - $largeur_source;
  73. $destination_y =  $hauteur_destination - $hauteur_source;
  74. // On met le logo (source) dans l'image de destination (la photo)
  75. if (!@imagecopymerge($new_img, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
  76.  header("HTTP/1.0 500 Internal Server Error" );
  77.  echo "Could not merge image";
  78.  exit(0);
  79. }
  80. // Use a output buffering to load the image into a variable
  81. ob_start();
  82. imagejpeg($new_img);
  83. $new_img = ob_get_contents();
  84. ob_end_clean();
  85. $file_id2 = md5($_FILES["Filedata"]["tmp_name"] + rand()*100000);
  86. $_SESSION["file_info"][$file_id2] = $new_img;
  87. echo $file_id2; // Return the file id to the script
  88. ?>

mood
Publicité
Posté le 14-05-2008 à 16:35:26  profilanswer
 

n°1731929
sielfried
Posté le 14-05-2008 à 17:55:58  profilanswer
 

N'indique surtout pas quel est le problème/bug. [:petrus75]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1731935
babasss
Posté le 14-05-2008 à 18:00:38  profilanswer
 

Fais un petit effort sielfried, je te prête la mienne :
http://www.themagicalblend.com/images/ball_stand.jpg


Message édité par babasss le 14-05-2008 à 18:01:09

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1732272
Bluntch
Posté le 15-05-2008 à 16:13:03  profilanswer
 

lol enorme la loupe !!! le probleme arrive vers la ligne 93 je pense, en fait, le script marche sauf si j'essaye de fusionner les 2 images!

n°1732274
babasss
Posté le 15-05-2008 à 16:14:24  profilanswer
 

Bluntch a écrit :

lol enorme la loupe !!! le probleme arrive vers la ligne 93 je pense, en fait, le script marche sauf si j'essaye de fusionner les 2 images!


 [:o_non] pas une loupe, une boule de cristal pour découvrir où est l'erreur....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1732287
Bluntch
Posté le 15-05-2008 à 16:33:42  profilanswer
 

bon bah j'ai resolu mon erreur :) des { } manquants


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  upload + resize + ajout logo

 

Sujets relatifs
DOM - ajout d'un select dynamiquement toujours à la ligneAjout d'un vector qui contient lui même un vector
Problème erreur if[Résolue]Upload de fichiers
Problème d'ajout vb6[MediaWiki] Upload de fichier (marche que sur l'hebergement du wiki)
[jdbc] probleme d'ajout du driverFiltrage de type de fichier dans la fenetre d'upload
Ajout et suppression de champFormulaire - Ajout d'un champ
Plus de sujets relatifs à : upload + resize + ajout logo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR