Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Miniatura obrazka, a potem wyswietlenie jego
NetJaro
post
Post #1





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Jak zrobić miniaturę obrazka a potem po kliknięciu na tą miniature pojawił się oryginalny rozmiar obrazka w popupie?

Pozdro :-)

P.S

Mam kod co tworzy miniaturę obrazka:

  1. <?php
  2. header('Content-type: image/jpeg');
  3.  
  4. $myimage = resizeImage(&#092;"./img/$id.jpg\", \"200\", \"200\");
  5. function resizeImage($filename, $newwidth, $newheight){
  6. list($width, $height) = getimagesize($filename);
  7. if($width > $height && $newheight < $height){
  8. $newheight = $height / ($width / $newwidth);
  9. } else if ($width < $height && $newwidth < $width) {
  10. $newwidth = $width / ($height / $newheight);
  11. } else {
  12. $newwidth = $width;
  13. $newheight = $height;
  14. }
  15. $thumb = imagecreatetruecolor($newwidth, $newheight);
  16. $source = imagecreatefromjpeg($filename);
  17. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  18. return imagejpeg($thumb);
  19. }
  20. ?>


Lecz on wyświetla obrazek sam (tak jak działa <img>).

Ten post edytował NetJaro 7.05.2005, 20:42:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mario
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


ja napisałem takie coś.

funkcja_zmien_rozdzielczosc_obrazka.php

  1. <?
  2. function zmien_rozdzielczosc_obrazka ($img_path, $maksymalna_szerokosc, $maksymalna_wysokosc)
  3.  {
  4. $katalog_serwera = $_SERVER['DOCUMENT_ROOT'];
  5.  
  6. If (file_exists(&#092;"$katalog_serwera/$img_path\"))
  7.  {
  8. $img_size = GetImageSize(&#092;"$katalog_serwera/$img_path\");
  9. $img_width = $img_size[0];
  10. $img_height = $img_size[1];
  11.  
  12. $ratio_x = $maksymalna_szerokosc / $img_width;
  13. $ratio_y = $maksymalna_wysokosc / $img_height;
  14.  
  15. if ($img_width < $maksymalna_szerokosc && $img_height < $maksymalna_wysokosc)
  16.  {
  17. $new_width = $img_width;
  18. $new_height = $img_height; 
  19.  }
  20. else
  21.  {
  22. if ($ratio_x > $ratio_y) // Fotka wyzsza niz szersza
  23.  {
  24. $new_width = ceil($img_width * $ratio_y);
  25. $new_height = $maksymalna_wysokosc;
  26.  }
  27. else
  28.  { // Fotka szersza niz wyzsza
  29. $new_width = $maksymalna_szerokosc;
  30. $new_height = ceil($img_height * $ratio_x);
  31.  }
  32.  }
  33.  
  34. $zrd = ImageCreateFromJpeg(&#092;"$katalog_serwera/$img_path\");
  35. $prz = ImageCreateTrueColor($new_width,$new_height);
  36.  
  37. ImageCopyResampled($prz,$zrd,0,0,0,0,$new_width,$new_height,$img_width,$img_height);
  38.  
  39. $zdjecie = pathinfo(&#092;"$katalog_serwera/$img_path\");
  40.  
  41. $zdjecie_katalog = $zdjecie [&#092;"dirname\"];
  42. $zdjecie_nazwa = $zdjecie [&#092;"basename\"];
  43. $zdjecie_rozszerzenie = $zdjecie [&#092;"extension\"];
  44. $zdjecie_sciezka = &#092;"$zdjecie_katalog/$zdjecie_nazwa\";
  45. $zdjecie_sciezka_zapis = &#092;"$zdjecie_katalog/$zdjecie_nazwa\";
  46.  
  47. ImageJpeg ($prz, $zdjecie_sciezka_zapis, 80);
  48. ImageDestroy($zrd);
  49. ImageDestroy($prz);
  50.  
  51. $zdjecie_rozmiar_pliku = filesize($zdjecie_sciezka_zapis);
  52. $zdjecie_rozmiar_pliku = ceil($zdjecie_rozmiar_pliku/1024);
  53.  
  54. list ($zdjecie_szerokosc, $zdjecie_wysokosc, $type, $attr) = getimagesize ($zdjecie_sciezka_zapis);
  55.  
  56. $zdjecie = array ($zdjecie_sciezka_zapis, $zdjecie_katalog, $zdjecie_nazwa, $zdjecie_rozszerzenie, $zdjecie_szerokosc, $zdjecie_wysokosc, $zdjecie_rozmiar_pliku);
  57.  
  58. return $zdjecie;
  59.  }
  60.  }
  61. ?>


aby zrobić miniaturkę include'ujesz funkcję:

  1. <?php
  2. include (&#092;"funkcja_zmien_rozdzielczosc_obrazka.php\");
  3. ?>


kopiujesz obrazek na serwer, i odpalasz funkcję z parametrami:
  1. <?php
  2. $miniaturka = zmien_rozdzielczosc_obrazka ($nazwa_pliku, $max_szerokosc, $max_wysokosc);
  3. ?>


Funkcja zrobi Ci miniaturkę i zapisze pod podaną nazwą $nazwa_pliku. Zwróci również parametry miniaturki: wielkość, szerokość, rozmiar, rozszerzenie, katalog zapisu itp.

A teraz wystarczy skorzystać z kodu do robienia auto-pop'upów opisanego w topicu małe w duże obrazki
Go to the top of the page
+Quote Post
NetJaro
post
Post #3





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Dzięki, teraz mam inny problem...
Mam kod , lecz działa on tylko dla plików JPG. jak zrobić, aby działał na innych typach plików?

  1. <?php
  2. header('Content-type: image/jpeg');
  3.  
  4. $myimage = resizeImage(&#092;"./img/$id.jpg\", \"200\", \"200\");
  5. function resizeImage($filename, $newwidth, $newheight){
  6. list($width, $height) = getimagesize($filename);
  7. if($width > $height && $newheight < $height){
  8. $newheight = $height / ($width / $newwidth);
  9. } else if ($width < $height && $newwidth < $width) {
  10. $newwidth = $width / ($height / $newheight);
  11. } else {
  12. $newwidth = $width;
  13. $newheight = $height;
  14. }
  15. $thumb = imagecreatetruecolor($newwidth, $newheight);
  16. $source = imagecreatefromjpeg($filename);
  17. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  18. return imagejpeg($thumb);
  19. }
  20. ?>


ID pliku poprzez zmienną $id odczytuję a rozszerzenie poprzez $roz_pliku.

Pozdro :-)
Go to the top of the page
+Quote Post
mario
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


zamiast funkcji imagecreatefromjpeg zmień na:
GIF - imagecreatefromgif
PNG - imagecreatefrompng
WBMP - imagecreatefromwbmp
będziesz musiał dokładnie poczytać w manual'u w przykładach tam wszystko jest dokładnie opisane.
Go to the top of the page
+Quote Post
NetJaro
post
Post #5





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


A pytanie:

  1. <?php
  2. $source = imagecreatefrom.$roz_pliku($filename);
  3. ?>


Jak prawidłowo połączyć funkcję z zmienną?

Ten post edytował NetJaro 7.05.2005, 22:02:20
Go to the top of the page
+Quote Post
mario
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


  1. <?php
  2. $plik = pathinfo ($nazwa_pliku);
  3. $rozszerzenie = $plik[&#092;"extension\"];
  4.  
  5. If ($rozszerzenie==&#092;"gif\")
  6.  $polecenie = &#092;"ImageCreateFromGIF\";
  7. If ($rozszerzenie==&#092;"jpg\")
  8.  $polecenie = &#092;"ImageCreateFromJPEG\";
  9. If ($rozszerzenie==&#092;"png\")
  10.  $polecenie = &#092;"ImageCreateFromPNG\";
  11. ?>

a instrukcję w kodzie imagecreatefromjpeg zamień na $polecenie
Go to the top of the page
+Quote Post
NetJaro
post
Post #7





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


  1. <?php
  2. if ($roz_pliku == &#092;"gif\"){
  3. header('Content-type: image/gif');
  4. $polecenie = &#092;"ImageCreateFromgif($filename);\";
  5. $polecenie2 = &#092;"imagegif($thumb)\";
  6. } elseif ($roz_pliku == &#092;"GIF\") {
  7. header('Content-type: image/gif');
  8. $polecenie2 = &#092;"imagegif($thumb)\";
  9. $polecenie = &#092;"ImageCreateFromgif($filename);\";
  10. } elseif ($roz_pliku == &#092;"jpg\") {
  11. header('Content-type: image/jpeg');
  12. $polecenie = &#092;"ImageCreateFromjpg($filename);\";
  13. $polecenie2 = &#092;"imagejpeg($thumb)\";
  14. } elseif ($roz_pliku == &#092;"JPG\") {
  15. header('Content-type: image/jpeg');
  16. $polecenie = &#092;"ImageCreateFromjpg($filename);\";
  17. $polecenie2 = &#092;"imagejpeg($thumb)\";
  18. } elseif ($roz_pliku == &#092;"PNG\") {
  19. header('Content-type: image/png');
  20. $polecenie = &#092;"ImageCreateFrompng($filename);\";
  21. $polecenie2 = &#092;"imagepng($thumb)\";
  22. } elseif ($roz_pliku == &#092;"png\") {
  23. header('Content-type: image/png');
  24. $polecenie = &#092;"ImageCreateFrompng($filename);\";
  25. $polecenie2 = &#092;"imagepng\";
  26. }
  27. $myimage = resizeImage(&#092;"./img/$id.$roz_pliku\", \"200\", \"200\");
  28. function resizeImage($filename, $newwidth, $newheight){
  29. list($width, $height) = getimagesize($filename);
  30. if($width > $height && $newheight < $height){
  31. $newheight = $height / ($width / $newwidth);
  32. } else if ($width < $height && $newwidth < $width) {
  33. $newwidth = $width / ($height / $newheight);
  34. } else {
  35. $newwidth = $width;
  36. $newheight = $height;
  37. }
  38. $thumb = imagecreatetruecolor($newwidth, $newheight);
  39. $source = $polecenie;
  40. imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  41.  
  42. return $polecenie2;
  43. }
  44. ?>


Pojawia mi się:
Kod
<br />
<b>Warning</b>:  imagecopyresized(): supplied argument is not a valid Image resource in <b>/home/upload/domains/upload.multihost.us/public_html/show.php</b> on line <b>40</b><br />


Co jest źle z tą funckją?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 04:19