Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z tworzeniem miniatur obrazu
-swavec-
post 15.10.2008, 13:32:48
Post #1





Goście







Czesć. Próbuję stworzyć stronę typu galeria. Jestem teraz na etapie tworzenia miniatury z obrazka jpg przesłanego wczesniej do odpowiedniego katalogu na serwerze. Niestety utknąłem w martwym punkcie - problem ze stworzeniem miniatury.... Poniżej zamieszczam kod którego używam do stworzenia miniatury. Myslę że kod jest poprawny ale błąd leży gdzie indziej i dokładnie nie wiem gdzie...
Zamiast obrazka jpg wyswietlają się takie znaki: „˙Ř˙ŕ”
Takie same znaki pojawiają się kiedy próbuję wyswietlic obrazek jeszcze przed pomniejszeniem go a także w przypadku gdy powinien zostać wygenerowany obrazek zastąpczy „błąd odczytu” wyswietla się: ˙Ř˙ŕ.
Nie wiem dlaczego tak się dzieje ale wygląda to tak jakbym nie mógł wykonać żadnych operacji na pliku graficznym... nawet nie mogę go wyswietlić przy pomocy funkcji imagejpeg(). Mogę go tylko wgrać na serwer... Co jest powodem tego? Czy ktos może mi pomóc?


  1. <?php
  2.  
  3.  
  4. $nazwa_pliku = "./galeria/ludzie/14102008214110.jpg";
  5. $szerokosc = 88;
  6.  
  7. // Content type
  8. header('Content-type: image/jpeg');
  9.  
  10.  $duzy = ImageCreateFromJPEG ("$nazwa_pliku");
  11.  
  12. //generowanie obrazka zastepczego
  13.  if (!$duzy) {
  14.     $duzy  = ImageCreate (150, 30);
  15.     $bgc = ImageColorAllocate ($duzy, 255, 255, 255);
  16.     $tc  = ImageColorAllocate ($duzy, 0, 0, 0);
  17.     ImageFilledRectangle ($duzy, 0, 0, 150, 30, $bgc);
  18.     ImageString ($duzy, 1, 5, 5, "Błąd odczytu", $tc);
  19.  
  20.  }
  21.  
  22.  $duzyX=ImageSX($duzy);
  23.  $duzyY=ImageSY($duzy);
  24.  
  25.  //tworzymy miniaturkę
  26.  $maly=ImageCreate($szerokosc,($szerokosc/$duzyX)*$duzyY);
  27.  $malyX=ImageSX($maly);
  28.  $malyY=ImageSY($maly);
  29.  
  30.  ImageCopyResized(
  31.    $maly,$duzy,    //przeznaczenie, źródło
  32.    0,0,            //gdzie ma trafić w przeznaczeniu
  33.    0,0,            //skąd ma pochodzić ze źródła
  34.    $malyX,$malyY,  //rozmiary, jakie ma zająć w przeznaczeniu
  35.    $duzyX,$duzyY   //rozmiary, jakie bierzemy ze źródła
  36.  );
  37.  
  38.  
  39.  
  40. ImageDestroy($duzy);
  41. imagejpeg($maly);
  42.  
  43. ?>
Powód edycji: Dodałem tag w tytule oraz bbcode, następnym razem takie tematy będę zamykał. /webdice
Go to the top of the page
+Quote Post
krzyszbi
post 15.10.2008, 17:59:29
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

Ostrzeżenie: (0%)
-----


kod jest dobry
złe jest użycie " a właściwie niepotrzebne
zamień na
  1. <?php
  2. $nazwa_pliku = './galeria/ludzie/14102008214110.jpg';
  3. $szerokosc = 88;
  4.  
  5. // Content type
  6. header('Content-type: image/jpeg');
  7.  
  8. $duzy = ImageCreateFromJPEG ($nazwa_pliku);
  9. ?>

dzieje się tak pewnie dlatego że php w podwójnych cudzysłowach szuka zmiennych jak i znaków ASCII


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
Go to the top of the page
+Quote Post
-swavec-
post 16.10.2008, 09:57:46
Post #3





Goście







Dzięki za odpowiedź niestety ta poprawka nie działa. Wciąż to samo. Problem nie leży w złym kodzie, ale myslę, że może to być cos z ustawieniami serwera.... (nie mam pojęcia o co chodzi) Próbowałem już większosć kodów z forum i ze wszystkimi to samo - wyswietla się: ˙Ř˙ŕ. Zamiast obrazka. Weźmy na przykład taki kod:
  1. <?php
  2. header ('Content-type: image/png');
  3. $im = @imagecreatetruecolor(120, 20)
  4.      or die('Cannot Initialize new GD image stream');
  5. $text_color = imagecolorallocate($im, 233, 14, 91);
  6. imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
  7. imagepng($im);
  8. imagedestroy($im);
  9. ?>

Wgrywam ten kod wgrywam do pliku php. (kod jest poprawny- podaje go tylko, żeby zobrazować w czym problem; kod ze strony: http://pl2.php.net/manual/pl/function.imag...etruecolor.php) Powinien on wygenerowac i wyswietlić na ekranie obrazek png o wymiarach 120x20 czarnym tle z czerwonym napisem „A Simple Text String” tymczasem na ekranie dostaję takie znaki: ‰PNG W przypadku obrazka jpg pojawia się: ˙Ř˙ŕ
Serwer mam na interii powinien obsługiwać prawie cały php; biblioteki GD2.0
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:51