Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie miniaturek
Forum PHP.pl > Forum > PHP
cichy19-
Witam

Używam poniżeszj funkcji do tworzenia miniaturek ale chyba jest z nią cos nie tak bo obcina zdjęcia.
Na przykład kawałek zdjęcia na górze i na dole.

  1. <?php
  2. function imgType($name) {
  3.  $roz = strtolower(substr($name,-4));
  4.  if($roz == '.jpg' || $roz == 'jpeg' || $roz == '.jpe') {
  5. return "IMAGETYPE_JPEG";
  6.  } elseif($roz == '.gif') {
  7. return "IMAGETYPE_GIF";
  8.  } elseif($roz == '.png') {
  9. return "IMAGETYPE_PNG";
  10.  } else {
  11. return "IMAGETYPE_JPEG";
  12.  }
  13. }
  14.  
  15. function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 90) {
  16.  
  17. if (imgType($source) == "IMAGETYPE_JPEG"){
  18. $img_src = imagecreatefromjpeg($source);
  19. } else if (imgType($source) == "IMAGETYPE_GIF"){
  20. $img_src = imagecreatefromgif($source);
  21. } else if (imgType($source) == "IMAGETYPE_PNG"){
  22. $img_src = imagecreatefrompng($source);
  23. }
  24.  
  25. $image_x = imagesx($img_src);
  26. $image_y = imagesy($img_src);
  27. if($image_x > $image_y) {
  28. $ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
  29. $ratio_y = $ratio_x;
  30. $move = 'y';
  31. } else {
  32. $ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
  33. $ratio_x = $ratio_y;
  34. $move = 'x';
  35. }
  36.  $new_x = $image_x*$ratio_x;
  37.  $new_y = $image_y*$ratio_y;
  38.  
  39.  $move_x = ($move == "x") ? ($max_x-$new_x)/: 0;
  40.  $move_y = ($move == "y") ? ($max_y-$new_y)/: 0;
  41.  
  42.  $new_img = imagecreatetruecolor($max_x, $max_y);
  43.  $background = imagecolorallocate($new_img, 255, 255, 255);
  44.  imagefill($new_img, 0, 0, $background);
  45.  imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  46.  
  47. if(imgType($save_image) == "IMAGETYPE_JPEG") {
  48.  imagejpeg($new_img, $save_image, 100);
  49. } elseif(imgType($save_image) == "IMAGETYPE_GIF") {
  50.  imagegif($new_img, $save_image);
  51. } elseif(imgType($save_image) == "IMAGETYPE_PNG") {
  52.  imagepng($new_img, $save_image);
  53. }
  54.  
  55. }
  56. ?>


Widzi ktoś może błąd?

Pozdrawiam
wipo
popatrz w dokumentacje

move_x i move_y najprawdopodobniej zamień na 0 i nie będzie przesunięć tylko nie wiem czy się nie zniekształci
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.