Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] obrazek - skalowanie i kadrowanie, najpierw przeskaluje potem skadruje...
kazag
post 13.06.2009, 11:15:57
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


Witam,
mam plik robiący mi miniatury z obrazka w locie, chciałbym jednak, aby ten plik zrobił miniaturę obrazka, a następnie przyciął ją do odpowiedniej wysokości. Np. jeżeli obrazek ma 500x1000px to miniatura zmniejszy go do 100x200px a następnie niechaj go zetnie do 100x50px, czyli zwyczajnie obetnie 3/4 obrazka od dołu.

Obecnie mój skrypt robi jednak jedynie miniatury:
  1. <?php
  2. $obrazek="img/arts/".$_GET['o'];
  3.  
  4. $ms=$_GET['ms'];
  5. $mw=$_GET['mw'];
  6.  
  7. if(!$ms)
  8. $ms=100;
  9. if(!$mw)
  10. $mw=100;
  11.  
  12. $rozmiar=GetImageSize($obrazek);
  13. $szer=$rozmiar[0];
  14. $wys=$rozmiar[1];
  15.  
  16. //skaluje
  17. $x=$ms/$szer;
  18. $mw=$wys*$x;
  19.  
  20. $typ=basename($obrazek);
  21. $pliki=explode(".", $typ);
  22.  
  23. if($pliki[1]=='png')
  24. {
  25. $zrd = ImageCreateFromPng($obrazek);
  26. $prz = imagecreatetruecolor($ms,$mw);
  27. imagecopyresized($prz, $zrd, 0, 0, 0, 0, $ms, $mw, $szer, $wys);
  28. header('Content-type: image/png');
  29. imagepng($prz);
  30. ImageDestroy($zrd);
  31. ImageDestroy($prz);
  32. }
  33. else
  34. {
  35. $zrd = ImageCreateFromJpeg($obrazek);
  36. $prz = imagecreatetruecolor($ms,$mw);
  37. imagecopyresized($prz, $zrd, 0, 0, 0, 0, $ms, $mw, $szer, $wys);
  38. header('Content-type: image/jpeg');
  39. ImageJpeg($prz, null, 100);
  40. ImageDestroy($zrd);
  41. ImageDestroy($prz);
  42. }
  43. ?>


Nie mam pojęcia, jak nakazać mu zamiast wyświetlania tego obrazka zrobienia na nim kolejnej operacji, czyli skadrowania... (samo kadrowanie wiem już jak wykonać).


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
erix
post 13.06.2009, 11:18:34
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie mam pojęcia, jak nakazać mu zamiast wyświetlania tego obrazka zrobienia na nim kolejnej operacji, czyli skadrowania...

Dodaj odpowiednie linijki przed wysłaniem do przeglądarki. ;] No prościej nakierować się chyba już nie da.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kazag
post 13.06.2009, 11:52:00
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


  1. <?php
  2. $zrd = ImageCreateFromPng($obrazek);
  3. $prz = imagecreatetruecolor($ms,$mw);
  4. [b]$nowy[/b] = imagecopyresized($prz, $zrd, 0, 0, 0, 0, $ms, $mw, $szer, $wys);
  5. [b]imagecopy($prz, [b]$zrd[/b], 0, 0, 0, 0, $ms, $mw);[/b]
  6. header('Content-type: image/png');
  7. imagepng($prz);
  8. ImageDestroy($zrd);
  9. ImageDestroy($prz);
  10. ?>


Nic nie daje, jeśli nie dodam $nowy, to skalowanie nie jest uwzglednianie, jeśli natomiast dodam nowy i przy imagecopy zmienie $zrd, czyli zrodlo, na $nowy, to również nic to nie daje, wywala błąd : Warning: imagecopy(): supplied argument is not a valid Image resource in D:\www\xampp\htdocs\et\miniatura.php on line 28

Ten post edytował kazag 13.06.2009, 11:54:00


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
erix
post 13.06.2009, 12:46:34
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A oba obrazki faktycznie istnieją? Numery linijek się przecież nie zgadzają, to ciężko gdybać.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kazag
post 13.06.2009, 12:57:26
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


@erix

Eh eh, ale dzięki, zrobiłem ;p


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
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: 13.07.2025 - 04:45