Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Generator miniaturek nie generuje poprawnie PNG
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Mam taki skrypt do generowania miniaturek plików graficznych:
  1. function upload_obrazka_miniaturka($file, $filetemp, $path, $newname, $wymiar) {
  2. if ($file != "") {
  3. if ($filetemp != "") {
  4. if (is_uploaded_file($filetemp)) {
  5. move_uploaded_file($filetemp, $path . "/" . $newname);
  6.  
  7. //////////////////////////////////
  8. if (preg_match("/php/", $file) || preg_match("/Php/", $file) || preg_match("/PHp/", $file) || preg_match("/PHP/", $file) || preg_match("/pHP/", $file) || preg_match("/phP/", $file) || preg_match("/pHp/", $file)) {
  9. unlink($path . "/" . $newname);
  10. return "BŁĘDNY PLIK - PROSZĘ SPRÓBOWAĆ PONOWNIE!!";
  11. exit();
  12. }
  13. $sizette = getimagesize($path . "/" . $newname);
  14. if($sizette['mime'] != "image/jpeg" && $sizette['mime'] != "image/jpg" && $sizette['mime'] != "image/png" && $sizette['mime'] != "image/png"){
  15. unlink($path . "/" . $newname);
  16. return "BŁĘDNY PLIK - PROSZĘ SPRÓBOWAĆ PONOWNIE!!";
  17. exit();
  18. }
  19. $rozm = filesize($path . "/" . $newname);
  20. if($rozm > 2500000){
  21. unlink($path . "/" . $newname);
  22. return "PLIK ZA DUŻY- PROSZĘ SPRÓBOWAĆ PONOWNIE!!";
  23. exit();
  24. }
  25. //////////////////////////////////
  26.  
  27. $file = strtolower($file);
  28. $nazwaobrazka = explode('.', $newname);
  29.  
  30. //Przypisujemy do zmiennej $img_path ścieżke do obrazka
  31. $img_path = $path . "/" . $newname;
  32.  
  33. //Tworzymy scieżkę do miniaturki
  34. $thumb_path = $path . "/mini_" . $nazwaobrazka['0'] . '.' . $nazwaobrazka['1'];
  35.  
  36. //ustalamy maksymalny dopuszczalny rozmiar miniatury
  37. $max_width = $max_height = $wymiar;
  38.  
  39. //Sprawdzamy czy obraz istnieje
  40. //if (!file_exists($img_path))
  41. // die('Plik obrazu nie istnieje');
  42. //Pobieramy informacjie o obrazie
  43. $img_attr = getimagesize($img_path);
  44.  
  45. //Sprawdzamy czy obraz jest wiekszy na szerokość czy na wysokość
  46. // i zmniejszamy odpowiednio rozmiar
  47. // $img_attr[0] - szerokosc, $img_attr[1] - wysokość
  48. if ($img_attr[0] > $img_attr[1]) {
  49. $scale = $img_attr[0] / $max_width;
  50. } else {
  51. $scale = $img_attr[1] / $max_height;
  52. }
  53.  
  54. //Tworzymy obraz miniaturki
  55. $w = floor($img_attr[0] / $scale);
  56. $h = floor($img_attr[1] / $scale);
  57. $thumb = imagecreatetruecolor($w, $h);
  58.  
  59.  
  60. if($nazwaobrazka['1'] == "jpg" || $nazwaobrazka['1'] == "jpeg"){
  61. //Kopiujemy obraz pomniejszajac go,
  62. imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  63.  
  64. //Zapisujemy do pliku (jakość 85)
  65. imagejpeg($thumb, $thumb_path, 85);
  66. }
  67. /////////////////
  68.  
  69. if($nazwaobrazka['1'] == "png"){
  70. //Kopiujemy obraz pomniejszajac go,
  71. imagecopyresampled($thumb, imagecreatefrompng($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  72.  
  73. //Zapisujemy do pliku (jakość 85)
  74. imagepng($thumb, $thumb_path, 85);
  75. }
  76.  
  77.  
  78. $nazwaobrazka = explode('.', $newname);
  79.  
  80. //Przypisujemy do zmiennej $img_path ścieżke do obrazka
  81. $img_path = $path . "/" . $newname;
  82.  
  83. //Tworzymy scieżkę do miniaturki
  84. $thumb_path = $path . "" . $nazwaobrazka['0'] . '.' . $nazwaobrazka['1'];
  85.  
  86. //ustalamy maksymalny dopuszczalny rozmiar miniatury
  87. $max_width = $max_height = 800;
  88.  
  89. //Sprawdzamy czy obraz istnieje
  90. //if (!file_exists($img_path))
  91. // die('Plik obrazu nie istnieje');
  92. //Pobieramy informacjie o obrazie
  93. $img_attr = getimagesize($img_path);
  94.  
  95. //Sprawdzamy czy obraz jest wiekszy na szerokość czy na wysokość
  96. // i zmniejszamy odpowiednio rozmiar
  97. // $img_attr[0] - szerokosc, $img_attr[1] - wysokość
  98. if ($img_attr[0] > $img_attr[1]) {
  99. $scale = $img_attr[0] / $max_width;
  100. } else {
  101. $scale = $img_attr[1] / $max_height;
  102. }
  103.  
  104. //Tworzymy obraz miniaturki
  105. $w = floor($img_attr[0] / $scale);
  106. $h = floor($img_attr[1] / $scale);
  107. $thumb = imagecreatetruecolor($w, $h);
  108.  
  109.  
  110.  
  111. if($nazwaobrazka['1'] == "jpg" || $nazwaobrazka['1'] == "jpeg"){
  112. //Kopiujemy obraz pomniejszajac go,
  113. imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  114.  
  115. //Zapisujemy do pliku (jakość 85)
  116. imagejpeg($thumb, $thumb_path, 85);
  117. }
  118.  
  119.  
  120.  
  121. if($nazwaobrazka['1'] == "png"){
  122.  
  123. //Kopiujemy obraz pomniejszajac go,
  124. imagecopyresampled($thumb, imagecreatefrompng($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  125.  
  126. //Zapisujemy do pliku (jakość 85)
  127. imagepng($thumb, $thumb_path, 85);
  128.  
  129. }
  130.  
  131. /////////////////
  132.  
  133. return $img_path;
  134. } else {
  135. echo"<center><b>Nie można dodać pliku!!</b> Błąd: " . $file . " </center> <br/>";
  136. }
  137. }
  138. }
  139. }



Ale nie generuje mi miniaturki.... Wie ktoś może dlaczego?
Pliki jpg generuje poprawnie - problem jest tylko z PNG.


Bardzo proszę o pomoc,
Northwest

Ten post edytował northwest 8.03.2015, 22:39:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 10:07