Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] imagecopyresampled
fernet
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

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


Witam,

Popełniłem skrypt który ma za zadanie dopasować ładowane zdjęcie do odpowiedniej rozdzielczości. W pierwszej fazie leci skalowanie z zachowaniem proporcji wysokość/szerokość a później jeśli coś po katach wystaje leci kadrowanie z pozycji x czy tez y o przypadkowej mniejszej wartości roznicy. W wiekszosci przypadkow skrypt dzala jednak jest gdzes jest blad i nie moge go znalesc a objawia sie tym ze czasem zdjecia w swojej dolnej czesci sa sciete o jakas przypadkowa wysokosc.


  1. $pic = @imagecreatefrompng($id_thumb);
  2. $mega = $mega_path;
  3. $width = imagesx($pic);
  4. $height = imagesy($pic);
  5. $cat_x = 0;
  6. $cat_y = 0;
  7.  
  8.  
  9. if($height == $width) {
  10. $Twidth = 330;
  11. $Theight = $Twidth * $height / $width;
  12. $Theight = ceil($Theight);
  13. $cat_y = rand(0,$Theight-286);
  14. } else {
  15. if($height < $width) {
  16. $Theight = 286;
  17. $Twidth = $Theight * $width / $height;
  18. $Twidth = ceil($Twidth);
  19. if($Twidth < 330) {
  20. $Twidth = 330;
  21. $Theight = $Twidth * $height / $width;
  22. $Theight = ceil($Theight);
  23. } else {
  24. $cat_x = rand(0,$Twidth-330);
  25. }
  26. } else {
  27. $Twidth = 330;
  28. $Theight = $Twidth * $height / $width;
  29. $Theight = ceil($Theight);
  30. if($Theight < 286) {
  31. $Theight = 286;
  32. $Twidth = $Theight * $width / $height;
  33. $Twidth = ceil($Twidth);
  34. } else {
  35. $cat_y = rand(0,$Theight-286);
  36. }
  37. }
  38. }
  39. $thumb = @imagecreatetruecolor (330, 286);
  40. imagealphablending($thumb, false);
  41. imagesavealpha($thumb,true);
  42. $transparent = imagecolorallocatealpha($thumb, 255, 255, 255, 127);
  43. imagefilledrectangle($thumb, 0, 0, $Twidth, $Theight, $transparent);
  44. imagecopyresampled($thumb, $pic, 0, 0, $cat_x, $cat_y, $Twidth, $Theight, $width, $height);
  45. imagepng($thumb,$mega);
  46. imagedestroy($thumb);
  47. unlink($target_path);
  48.  



Za pomoc i zainteresowaie z gory dziekuje i pozdrawiam

Ten post edytował fernet 10.11.2011, 01:20:16
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: 5.10.2025 - 16:45