Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [GD][PHP] Czarny obrazek po konwersji
Forum PHP.pl > Forum > Przedszkole
kornel-php
Otóż, mam dwa serwery. Na jednym funkcja tworzy poprawną miniaturkę zdjęcia, natomiast na drugim tworzy czarny prostokąt o wymiarach miniaturki...

Zupełnie nie wiem, w czym tkwi problem, na obu serwerach mam aktywne GD.

Próbowałem zapisywać pliki w różnych formatach, ale w obu przypadkach to samo... Na jednym serwerze idealnie, natomiast na drugim czarny prostokąt...

Liczę na pomoc, z góry dziękuję!
babejsza
a jak Ci mamy pomóc? Daj kod którym generujesz miniatury.

Poza tym pierwsze co mi przychodzi do głowy to to, który parser działa na którym serwerze. Biblioteka GD został poszerzona w wersji 5 i być może używasz funkcji, których w wersji 4 nie ma. Ale to tylko strzał.
kornel-php
  1. <?php
  2.  
  3. function konwersja($sciezka_src,$sciezka_dst,$szerokosc_max,$wysokosc_max)
  4. {
  5.  
  6. $wielkosc = getimagesize($sciezka_src);
  7.  
  8. if($wielkosc{0} * $wielkosc{1} < 1024 * 1024) {
  9.  
  10. list($szerokosc_src,$wysokosc_src,$typ_src) = getimagesize($sciezka_src);
  11.  
  12. $typ_src_mime=image_type_to_mime_type($typ_src);
  13. switch ($typ_src_mime) {
  14.  case 'image/pjpeg':
  15.  case 'image/jpeg':
  16. $img_src = ImageCreateFromJPEG($sciezka_src);
  17.  break;
  18.  
  19.  case 'image/x-png':
  20.  case 'image/png':
  21. $img_src = ImageCreateFromPNG($sciezka_src);
  22.  break;
  23.  
  24.  case 'image/gif':
  25. $img_src = ImageCreateFromGIF($sciezka_src);  
  26.  break;
  27. }
  28.  
  29. if(($wysokosc_max<$wysokosc_src) or ($szerokosc_max<$szerokosc_src))
  30. {
  31. if($wysokosc_src>$wysokosc_max) //skaluj do wysokosci
  32. {
  33. $wysokosc_dst=$wysokosc_max;
  34. $wsp=$wysokosc_max/$wysokosc_src; //wspolczynnik skalowania
  35. $szerokosc_dst=round($wsp*$szerokosc_src);
  36.  
  37. } else { //skaluj do szerokosci
  38.  
  39. $szerokosc_dst=$szerokosc_max;
  40. $wsp=$szerokosc_max/$szerokosc_src;
  41. $wysokosc_dst=round($wsp*$wysokosc_src);
  42. }
  43.  
  44. } else { //jesli wymiary obrazka sa mniejsze lub rowne rozmiarowi maksymalnego
  45. $szerokosc_dst=$szerokosc_max;
  46. $wysokosc_dst=$wysokosc_max;
  47. }
  48.  
  49. $img_dst=imagecreatetruecolor($szerokosc_dst,$wysokosc_dst);
  50.  
  51. imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $szerokosc_dst, $wysokosc_dst, $szerokosc_src,$wysokosc_src);
  52.  
  53. imagejpeg($img_dst,$sciezka_dst,70);
  54. imagedestroy($img_src);
  55. imagedestroy($img_dst);
  56. }
  57.  
  58.  
  59. else { echo '<b>Plik jest za duży!</b> &nbsp;'; }
  60.  
  61. } //koniec funkcji konwersja
  62.  
  63. ?>


Nie wiem, co może być nie tak, po raz pierwszy w życiu mam do czynienie z GD...
kresh
A dlaczego tak:
  1. <?php
  2. if( $wielkosc{0} * $wielkosc{1} < 1024 * 1024 )
  3. ?>


a nie tak:
  1. <?php
  2. if( $wielkosc[0] * $wielkosc[1] < 1024 * 1024 )
  3. ?>
kornel-php
Cytat(kresh @ 7.05.2007, 20:22:24 ) *
A dlaczego tak:
  1. <?php
  2. if( $wielkosc{0} * $wielkosc{1} < 1024 * 1024 )
  3. ?>


a nie tak:
  1. <?php
  2. if( $wielkosc[0] * $wielkosc[1] < 1024 * 1024 )
  3. ?>


Nie wiem, nauczyłem się pisać elementy tablicy w klamerkach i tak już mam...
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.