upload + resize + ajout logo

upload + resize + ajout logo - PHP - Programmation

Marsh Posté le 14-05-2008 à 16:35:26    

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. ?>

Reply

Marsh Posté le 14-05-2008 à 16:35:26   

Reply

Marsh Posté le 14-05-2008 à 17:55:58    

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


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 14-05-2008 à 18:00:38    

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
Reply

Marsh Posté le 15-05-2008 à 16:13:03    

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!

Reply

Marsh Posté le 15-05-2008 à 16:14:24    

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
Reply

Marsh Posté le 15-05-2008 à 16:33:42    

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

Reply

Sujets relatifs:

Leave a Replay

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