witam, pisałem już tu dzisiaj o tym czy jest mozliwosc zrobienia do miniaturek w galerii zdjęc cienia, który bedzie automatycznie sie dodawał wraz z miniaturką, otóz jest znalazłem odpowiedni skrypt który chciałem przerobić dla siebie, ale mam problem...bo wychodzi mi cien..ale dodatkowo zamiast zdjęcia mam czarne albo białe tło, oto kod:
[php]
<?php

Kod
if(!empty($_POST['data'][$counter]))
         {
           $data = mysqli_real_escape_string($dbc,trim($_POST['data'][$counter]));
           $wyn = mysqli_query($dbc,"SELECT data,id FROM data_zdj WHERE data LIKE '$data'");
           if(mysqli_num_rows($wyn) > 0)
           {
             $id_wlasciwe = mysqli_fetch_array($wyn);
             $id_daty = $id_wlasciwe['id'];
           }
           else
           {
             $rezultat = mysqli_query($dbc,"INSERT INTO data_zdj(data) VALUES('$data')");
             $id_daty = mysqli_insert_id($dbc);
           }
         }
         else
         {
           $id_daty ='NULL';
         }
         if(!empty($_POST['miejsce'][$counter]))
         {
           $miejsce = mysqli_real_escape_string($dbc,trim($_POST['miejsce'][$counter]));
           $wyn = mysqli_query($dbc,"SELECT miejsce,id FROM miejsce_zdj WHERE miejsce LIKE '$miejsce'");
           if(mysqli_num_rows($wyn) > 0)
           {
             $id_wlasciwe = mysqli_fetch_array($wyn);
             $id_miejsca = $id_wlasciwe['id'];
           }
           else
           {
             $rezultat = mysqli_query($dbc,"INSERT INTO miejsce_zdj(miejsce) VALUES('$miejsce')");
             $id_miejsca = mysqli_insert_id($dbc);
           }
         }
         else
         {
           $id_miejsca='NULL';
         }
        
         if(!empty($_POST['kategoria'][$counter]))
         {
           $kategoria = mysqli_real_escape_string($dbc,trim($_POST['kategoria'][$counter]));
           $wyn = mysqli_query($dbc,"SELECT kategoria.nazwa,id FROM kategoria WHERE kategoria.nazwa LIKE '$kategoria'");
           if(mysqli_num_rows($wyn) > 0)
           {
             $id_wlasciwe = mysqli_fetch_array($wyn);
             $id_kategorii = $id_wlasciwe['id'];
           }
           else
           {
             $rezultat = mysqli_query($dbc,"INSERT INTO kategoria(nazwa) VALUES('$kategoria')");
             $id_kategorii = mysqli_insert_id($dbc);
           }
         }
         else
         {
           $id_kategorii='NULL';
         }
      
         if(!empty($_POST['opis'][$counter]))
         {
           $opis = mysqli_real_escape_string($dbc,trim($_POST['opis'][$counter]));
         }
         else
         {
           $opis ='NULL';
         }


  1.  
  2. mysqli_query($dbc,"INSERT INTO zdjecie(plik,nazwa,id_kategorii,id_miejsca,id_daty,opis)
  3. VALUES('0', '".addslashes($photo_captions[$counter])."',$id_kategorii,$id_miejsca,$id_daty,'$opis')" );
  4. $new_id = mysqli_insert_id($dbc);
  5.  
  6. $filetype = $photos_uploaded['type'][$counter];
  7. $extention = $known_photo_types[$filetype];
  8. $filename = $new_id.".".$extention;
  9. mysqli_query( $dbc,"UPDATE zdjecie SET plik='".addslashes($filename)."' WHERE id='".addslashes($new_id)."'" );
  10. //dodaje teraz to ponizej
  11. copy($photos_uploaded['tmp_name'][$counter],"../".$images_dir."/".$filename);
  12. $function_suffix = $gd_function_suffix[$filetype];
  13. $function_to_read = "ImageCreateFrom".$function_suffix;
  14. $function_to_write = "Image".$function_suffix;
  15.  
  16. /* set drop shadow options */
  17.  
  18. /* offset of drop shadow from top left */
  19. define ( "DS_OFFSET" , 5 );
  20.  
  21. /* number of steps from black to background color */
  22. define("DS_STEPS", 10);
  23.  
  24. /* distance between steps */
  25. define ( "DS_SPREAD" , 1 );
  26.  
  27. /* define the background color */
  28. $background = array( "r" => 255 , "g" => 255 , "b" => 255 );
  29.  
  30.  
  31. //te dwa ponizej
  32. $odczytuje_zdjecia = $function_to_read ( "../".$images_dir."/".$filename );
  33. $size2 = GetImageSize( '../'.$images_dir."/".$filename );
  34. if($size2[0] > $size2[1])
  35. {
  36. $szer = 150;
  37. $wys = (int)(150 * $size2[1] / $size2[0]);
  38. }
  39. else
  40. {
  41. $szer = (int)(150 * $size2[0] / $size2[1] );
  42. $wys = 150;
  43. }
  44.  
  45.  
  46. $image2 = imagecreatetruecolor ( $szer , $wys );
  47. ImageCopyResampled( $image2, $odczytuje_zdjecia, 0, 0, 0, 0, $szer, $wys, $size2[0], $size2[1] );
  48. //$size = GetImageSize($image2 );
  49. /* create a new canvas. New canvas dimensions should be larger than the original's */
  50. $o_width = $szer;
  51. $o_height = $wys;
  52. echo $o_width.'<br />';
  53. echo $o_height;
  54. $width = $o_width + DS_OFFSET ;
  55. $height = $o_height + DS_OFFSET ;
  56. $image = imagecreatetruecolor ( $width , $height );
  57.  
  58. /* determine the offset between colors */
  59. $step_offset = array( "r" => ( $background [ "r" ] / DS_STEPS ), "g" => ( $background [ "g" ] / DS_STEPS ), "b" => ( $background [ "b" ] / DS_STEPS ));
  60.  
  61. /* calculate and allocate the needed colors */
  62. $current_color = $background ;
  63. for ( $i = 0 ; $i <= DS_STEPS ; $i ++) {
  64. $colors [ $i ] = imagecolorallocate ( $image , round ( $current_color [ "r" ]), round ( $current_color [ "g" ]), round ( $current_color [ "b" ]));
  65.  
  66. $current_color [ "r" ] -= $step_offset [ "r" ];
  67. $current_color [ "g" ] -= $step_offset [ "g" ];
  68. $current_color [ "b" ] -= $step_offset [ "b" ];
  69. }
  70.  
  71. /* floodfill the canvas with the background color */
  72. imagefilledrectangle ( $image , 0 , 0 , $width , $height , $colors [ 0 ]);
  73.  
  74. /* draw overlapping rectangles to create a drop shadow effect */
  75. for ( $i = 0 ; $i < count ( $colors ); $i ++) {
  76. imagefilledrectangle ( $image , DS_OFFSET , DS_OFFSET , $width , $height , $colors [ $i ]);
  77. $width -= DS_SPREAD ;
  78. $height -= DS_SPREAD ;
  79. }
  80.  
  81. /* overlay the original image on top of the drop shadow */
  82. $original_image = imagecreatefromjpeg ( $src );
  83. imagecopymerge ( $image , $original_image , 0 , 0 , 0 , 0 , $o_width , $o_height , 100 );
  84.  
  85. $function_to_write( $image, "../".$images_dir."/tb_".$filename );
  86. $result_final .= "<img src='../".$images_dir. "/tb_".$filename."' /> Dodano ".($counter+1)." zdjęcie.<br />";
  87. // Print Result
  88. echo <<<__HTML_END
  89.  
  90. <html>
  91. <head>
  92. <title>Photos uploaded</title>
  93. </head>
  94. <body>
  95. $result_final
  96. </body>
  97. </html>
  98.  
  99. __HTML_END;
  100. ?>
  101.  

Jeśli ktoś ma jakiś pomysł co to moze byc to prosiłbym o pomoc. Wydaje mi sie ze tu moze byc cos nie tak z funkcją $image = imagecreatetruecolor ( $width , $height ); znajdującą sie pod koniec programu, cos tu musiałem namieszac;/ a chciałem jedynie by zdjecia sie pomniejszały i dodawał sie do nich cień