Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zielono szare zdjęcia po zmniejszeniu
Forum PHP.pl > Forum > Przedszkole
lamcpp
Witam, korzystam z biblioteki GD do tworzenia miniaturek zdjęc i galerii. Orginalne zdjęcia zmniejszam równiez o podany w kodzie rozmiar.<br>Problem jest z tymi zmniejszanymi zdjeciami...bo po zmniejszeniu obojętnie czy przez funkcje imagecopyresized czy imagecopyresampled zarówno miniaturki jak i orginały są poprostu szare z domieszką zielonego, ktos mogłby pomoc nakierować co moze byc przyczyną i jak temu zaradzić? dodam ze bez zmniejszania zdjec jest ok, ale potrzebuje zmniejszonych...mało tego: miniaturki są zielono szare ale po powiekszeniu normalne zdjecia juz nie są, a jesli chodzi o duze zdjęcia zmniejszane..to dopiero to dodałem ale tez zielono szare;//<br>Kod służący za dodanie zdjęcia do bazy, stworzenie miniaturki i zmniejszenie orginalnego zdjęcia:

  1. <?php
  2. include("dane.php");
  3. // initialization
  4. $result_final = "";
  5. $counter = 0;
  6.  
  7. // List of our known photo types
  8. $known_photo_types = array(
  9. 'image/pjpeg' => 'jpg',
  10. 'image/jpeg' => 'jpg',
  11. 'image/gif' => 'gif',
  12. 'image/bmp' => 'bmp',
  13. 'image/x-png' => 'png'
  14. );
  15.  
  16. // GD Function List
  17. $gd_function_suffix = array(
  18. 'image/pjpeg' => 'JPEG',
  19. 'image/jpeg' => 'JPEG',
  20. 'image/gif' => 'GIF',
  21. 'image/bmp' => 'WBMP',
  22. 'image/x-png' => 'PNG'
  23. );
  24.  
  25.  
  26. $photos_uploaded = $_FILES['plik'];
  27. $photo_captions = $_POST['nazwa'];
  28. $opis = $_POST['opis'];
  29. $kategoria = $_POST['kategoria'];
  30. $miejsce = $_POST['miejsce'];
  31. $data = $_POST['data'];
  32.  
  33. while( $counter <= count($photos_uploaded) )
  34. {
  35. if($photos_uploaded['size'][$counter] > 0)
  36. {
  37. if(!array_key_exists($photos_uploaded['type'][$counter], $known_photo_types))
  38. {
  39. $result_final .= "Plik ".($counter+1)." nie jest zdjęciem.<br />";
  40. }
  41. else
  42. {
  43. if(!empty($_POST['data'][$counter]))
  44. {
  45. $data = mysqli_real_escape_string($dbc,trim($_POST['data'][$counter]));
  46. $wyn = mysqli_query($dbc,"SELECT data,id FROM data_zdj WHERE data LIKE '$data'");
  47. if(mysqli_num_rows($wyn) > 0)
  48. {
  49. $id_wlasciwe = mysqli_fetch_array($wyn);
  50. $id_daty = $id_wlasciwe['id'];
  51. }
  52. else
  53. {
  54. $rezultat = mysqli_query($dbc,"INSERT INTO data_zdj(data) VALUES('$data')");
  55. $id_daty = mysqli_insert_id($dbc);
  56. }
  57. }
  58. else
  59. {
  60. $id_daty ='NULL';
  61. }
  62. if(!empty($_POST['miejsce'][$counter]))
  63. {
  64. $miejsce = mysqli_real_escape_string($dbc,trim($_POST['miejsce'][$counter]));
  65. $wyn = mysqli_query($dbc,"SELECT miejsce,id FROM miejsce_zdj WHERE miejsce LIKE '$miejsce'");
  66. if(mysqli_num_rows($wyn) > 0)
  67. {
  68. $id_wlasciwe = mysqli_fetch_array($wyn);
  69. $id_miejsca = $id_wlasciwe['id'];
  70. }
  71. else
  72. {
  73. $rezultat = mysqli_query($dbc,"INSERT INTO miejsce_zdj(miejsce) VALUES('$miejsce')");
  74. $id_miejsca = mysqli_insert_id($dbc);
  75. }
  76. }
  77. else
  78. {
  79. $id_miejsca='NULL';
  80. }
  81.  
  82. if(!empty($_POST['kategoria'][$counter]))
  83. {
  84. $kategoria = mysqli_real_escape_string($dbc,trim($_POST['kategoria'][$counter]));
  85. $wyn = mysqli_query($dbc,"SELECT kategoria.nazwa,id FROM kategoria WHERE kategoria.nazwa LIKE '$kategoria'");
  86. if(mysqli_num_rows($wyn) > 0)
  87. {
  88. $id_wlasciwe = mysqli_fetch_array($wyn);
  89. $id_kategorii = $id_wlasciwe['id'];
  90. }
  91. else


  1. {
  2. $rezultat = mysqli_query($dbc,"INSERT INTO kategoria(nazwa) VALUES('$kategoria')");
  3. $id_kategorii = mysqli_insert_id($dbc);
  4. }
  5. }
  6. else
  7. {
  8. $id_kategorii='NULL';
  9. }
  10.  
  11. if(!empty($_POST['opis'][$counter]))
  12. {
  13. $opis = mysqli_real_escape_string($dbc,trim($_POST['opis'][$counter]));
  14. }
  15. else
  16. {
  17. $opis ='NULL';
  18. }
  19.  
  20. mysqli_query($dbc,"INSERT INTO zdjecie(plik,nazwa,id_kategorii,id_miejsca,id_daty,opis)
  21. VALUES('0', '".addslashes($photo_captions[$counter])."',$id_kategorii,$id_miejsca,$id_daty,'$opis')" );
  22. $new_id = mysqli_insert_id($dbc);
  23.  
  24. $filetype = $photos_uploaded['type'][$counter];
  25. $extention = $known_photo_types[$filetype];
  26. $filename = $new_id.".".$extention;
  27. mysqli_query( $dbc,"UPDATE zdjecie SET plik='".addslashes($filename)."' WHERE id='".addslashes($new_id)."'" );
  28.  
  29.  
  30. // Store the orignal file
  31. copy($photos_uploaded['tmp_name'][$counter],"../".$images_dir."/".$filename);
  32.  
  33. // Let's get the Thumbnail size
  34. $size = GetImageSize( '../'.$images_dir."/".$filename );
  35. if($size[0] > $size[1])
  36. {
  37. $thumbnail_width = 119;
  38. $thumbnail_height = (int)(115 * $size[1] / $size[0]);
  39. }
  40. else
  41. {
  42. $thumbnail_width = (int)(141 * $size[0] / $size[1]);
  43. $thumbnail_height = 114;
  44. }
  45.  
  46.  
  47. if($size[0] > $size[1])
  48. {
  49. $as = 950;
  50. $bs = (int)(950 * $size[1] / $size[0]);
  51. }
  52. else
  53. {
  54. $as = (int)(630 * $size[0] / $size[1]);
  55. $bs = 630;
  56. }
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. // Build Thumbnail with GD 1.x.x, you can use the other described methods too
  64. $function_suffix = $gd_function_suffix[$filetype];
  65. $function_to_read = "ImageCreateFrom".$function_suffix;
  66. $function_to_write = "Image".$function_suffix;
  67.  
  68. // Read the source file
  69. $source_handle = $function_to_read ( "../".$images_dir."/".$filename );
  70.  
  71. if($source_handle)
  72. {
  73. $cos = ImageCreate ( $as, $bs );
  74. ImageCopyResampled( $cos, $source_handle, 0, 0, 0, 0, $as, $bs, $size[0], $size[1] );
  75. // Let's create an blank image for the thumbnail
  76. $destination_handle = ImageCreate ( $thumbnail_width, $thumbnail_height );
  77.  
  78. // Now we resize it
  79. ImageCopyResized( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] );
  80. }
  81. $function_to_write( $cos, "../".$images_dir."/".$filename );
  82. // Let's save the thumbnail
  83. $function_to_write( $destination_handle, "../".$images_dir."/tb_".$filename );
  84. ImageDestroy($destination_handle );
  85. //
  86.  
  87. $result_final .= "<img src='../".$images_dir. "/tb_".$filename."' /> Dodano ".($counter+1)." zdjęcie.<br />";
  88. }
  89. }
  90. $counter++;
  91. }
  92.  
  93. // Print Result
  94. echo <<<__HTML_END
  95.  
  96. <html>
  97. <head>
  98. <title>Photos uploaded</title>
  99. </head>
  100. <body>
  101. $result_final
  102. </body>
  103. </html>
  104.  
  105. __HTML_END;
  106. ?>
Spawnm
Zamiast
  1. $cos = ImageCreate ( $as, $bs );

daj
  1. $cos = ImageCreatetruecolor ( $as, $bs );
lamcpp
dzięki wielkie, tego własnie szukałem:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.