Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Skalowanie obrazka jpg do wykorzystania z FPDF
danon198901
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.09.2012

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


Witam,
na początek dodam, że uczę się dopiero języka PHP (na podstawie informacji zaczerpniętych z google oraz książki).
Piszę stronkę dzięki której będę mógł generować dokumenty PDF (ulotki itp). Problem mam następujący, że użytkownik może:
a ) Nie dodawać loga do dokumentu PDF
b ) Dodać wbudowane logo
c ) Wgrać własne logo, które zostanie dodane do dokumentu PDF

Z A i B problemu nie ma, jednak problem pojawia się, gdy użytkownik wrzuci własne zdjęcie, które będzie większe niż ja założyłem...wtedy wyjdzie on za ramy dokomentu, a tego nie chcę. Nie chcę również, narzucić maksymalnej wielkości zdjęcia, które użytkownik wgra. Po prostu jeśli rozdzielczość jest większa powiedzmy od 150x150 px to następuje skalowanie.

W internecie znalazłem najbardziej przemawiający do mnie skrypt php, wg. którego pobierane jest zdjęcie, następuje skalowanie i zapisanie zmienionego obrazka. Sprawdziłem, błędu nie wyrzuca, ale również nie skaluje:(

Poniżej prezentuje znaleziony kod (ścieżka jest moja):

  1. <?php
  2.  
  3. $plik = 'obrazki/slonecznik.jpeg';
  4.  
  5. function resize( $plik, $szerokosc = 55 ) {
  6.  
  7. $i = explode('.', $plik);
  8. $rozszerzenie = end($i);
  9.  
  10. if($rozszerzenie !== 'jpeg' &&
  11. $rozszerzenie !== 'gif' &&
  12. $rozszerzenie !== 'png') {
  13. return false;
  14. }
  15.  
  16. list($img_szer, $img_wys) = getimagesize($plik);
  17.  
  18. $proporcje = $img_wys / $img_szer;
  19. $wysokosc = $szerokosc * $proporcje;
  20.  
  21. $canvas = imagecreatetruecolor($szerokosc, $wysokosc);
  22.  
  23. switch($rozszerzenie) {
  24. case 'jpeg':
  25. $org = imagecreatefromjpeg($plik);
  26. break;
  27. case 'gif':
  28. $org = imagecreatefromgif($plik);
  29. break;
  30. case 'png':
  31. $org = imagecreatefrompng($plik);
  32. break;
  33. }
  34.  
  35. imagecopyresampled($canvas, $org, 0, 0, 0, 0,
  36. $szerokosc, $wysokosc, $img_szer, $img_wys);
  37.  
  38. if(imagejpeg($canvas, $plik, 70)) {
  39. return true;
  40. } else {
  41. return false;
  42. }
  43. }
  44. ?>


Jakieś sugestie? (IMG:style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.09.2025 - 01:15