Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Generowanie obrazków, tak aby szerokość i wysokość były takie same
poxrimex
post 16.02.2008, 13:53:41
Post #1





Grupa: Zarejestrowani
Postów: 368
Pomógł: 2
Dołączył: 23.09.2007

Ostrzeżenie: (60%)
XXX--


  1. <?php
  2. $source="bla.jpeg";
  3.  $max_x='140px';
  4.  $max_y='140px';
  5.  
  6. if(exif_imagetype($source) == IMAGETYPE_JPEG){
  7. $img_src = imagecreatefromjpeg($source);
  8. }elseif(exif_imagetype($source) == IMAGETYPE_GIF){
  9. $img_src = imagecreatefromgif($source);
  10. }elseif(exif_imagetype($source) == IMAGETYPE_PNG){
  11. $img_src = imagecreatefrompng($source);
  12. }else{
  13. die('Wrong filetype! Accepted images: JPG/JPEG, GIF, PNG');
  14. }
  15. $image_x = imagesx($img_src);
  16. $image_y = imagesy($img_src);
  17. if($image_x > $image_y){ //landscape
  18. $ratio = ($image_x > $max_x) ? $max_x/$image_x : 1;
  19. }else{ //portrait
  20. $ratio = ($image_y = $max_y) ? $max_y/$image_y : 1;
  21. }
  22. $new_x = $image_x*$ratio;
  23. $new_y = $image_y*$ratio;
  24. $new_img = imagecreatetruecolor($new_x, $new_y);
  25. imagecopyresampled($new_img, $img_src, 0, 0, 0, 0, $new_x, $new_y, $image_x, $image_y);
  26. if(exif_imagetype($source) == IMAGETYPE_JPEG){
  27. header('Content-type: image/jpeg');
  28. imagejpeg($new_img);
  29. }elseif(exif_imagetype($source) == IMAGETYPE_GIF){
  30. header('Content-type: image/gif');
  31. imagegif($new_img);
  32. }elseif(exif_imagetype($source) == IMAGETYPE_PNG){
  33. header('Content-type: image/png');
  34. imagepng($new_img);
  35. }
  36. ImageDestroy($img_src);
  37. ImageDestroy($new_img);
  38. ?>


W tym skrypcie są zachowane proporcje, a ja chciałbym aby właśnie to max width i height zamieniło się w szerokość i wysokość wymuszoną, czyli zawsze taką samą niezależną od obrazka. Pozdrawiam


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



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
-Wieviór-
post 16.02.2008, 14:01:48
Post #2





Goście







Trochę popróbuj sam. Tutaj masz skrypt, który będzie Ci ratio zachowywał, napisz taki, który po prostu zmieni szerokość i wysokość obrazka, na jakąś wybraną.
Go to the top of the page
+Quote Post
poxrimex
post 16.02.2008, 14:06:09
Post #3





Grupa: Zarejestrowani
Postów: 368
Pomógł: 2
Dołączył: 23.09.2007

Ostrzeżenie: (60%)
XXX--


  1. <?php
  2. $orginalny_obrazek='abc.jpg';
  3. $docelowa_szerokosc='100';
  4. $docelowa_wysokosc='100';
  5. function zmiana_rozmiaru($orginalny_obrazek,$docelowa_szerokosc,$docelowa_wysokosc){
  6.  
  7. // Pobranie orginalnych parametrów i kalkulacja skali
  8. list($szerokosc, $wysokosc) = getimagesize($orginalny_obrazek);
  9. $xskala=$szerokosc/$docelowa_szerokosc;
  10. $yskala=$wysokosc/$docelowa_wysokosc;
  11.  
  12. // Kalkulacja nowego rozmiaru
  13. if ($yskala>$xskala){
  14. $nowa_szerokosc = round($szerokosc * (1/$yskala));
  15. $nowa_wysokosc = round($wysokosc * (1/$yskala));
  16. }
  17. else {
  18. $nowa_szerokosc = round($szerokosc * (1/$xskala));
  19. $nowa_wysokosc = round($wysokosc * (1/$xskala));
  20. }
  21.  
  22. // Zmiana rozmiaru orginalnego obrazu
  23. $obraz_zmiana_wielkosci = imagecreatetruecolor($nowa_szerokosc, $nowa_wysokosc);
  24. $obrazek_tymczasowy  = imagecreatefromjpeg ($orginalny_obrazek);
  25. imagecopyresampled($obraz_zmiana_wielkosci, $obrazek_tymczasowy, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc);
  26.  
  27. return $obraz_zmiana_wielkosci;
  28. }
  29. ?>


TAKI SKRYPT NIC MI NIE ZWRACA

nie wiem z jakiego powodu


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



Go to the top of the page
+Quote Post
-Wieviór-
post 16.02.2008, 14:08:10
Post #4





Goście







A co on ma Ci wywoływać skoro nie wykonujesz nawet tej funkcji?
Go to the top of the page
+Quote Post
poxrimex
post 16.02.2008, 15:39:44
Post #5





Grupa: Zarejestrowani
Postów: 368
Pomógł: 2
Dołączył: 23.09.2007

Ostrzeżenie: (60%)
XXX--


no to wróćmy do tego pierwszego skryptu chciałbym aby on wyświetlał obrazki o szerokości i wysokości tylko 120px


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



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: 15.07.2025 - 22:46