Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skalowanie w GD
NuLL
post
Post #1





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Witam,

Przez moje ręce przeszedł projekt w którym było potrzebne skalowanie obrazkow.
Do skalowania napisałem coś takiego
  1. <?php
  2.  
  3. function create_thumb_wfixed($file_name_src, $file_name_dest, $weight,$quality=100)
  4. {
  5.  if (file_exists($file_name_src) && isset($file_name_dest))
  6.  {
  7.  $est_src = pathinfo(strtolower($file_name_src));
  8.  $est_dest = pathinfo(strtolower($file_name_dest));
  9.  $size = getimagesize($file_name_src);
  10.  $w = number_format($weight, 0, ',', '');
  11.  $h = number_format(($size[1]/$size[0])*$weight,0,',','');
  12.  
  13.  if ($est_dest['extension'] == &#092;"gif\" || $est_dest['extension'] == \"jpg\")
  14.  {
  15.  $file_name_dest = substr_replace($file_name_dest, 'jpg', -3);
  16.  $dest = imagecreatetruecolor($w, $h);
  17.  //imageantialias($dest, TRUE);
  18.  } elseif ($est_dest['extension'] == &#092;"png\")
  19.  {
  20.  $dest = imagecreatetruecolor($w, $h);
  21.  //imageantialias($dest, TRUE);
  22.  } else
  23.  {
  24. return FALSE;
  25.  }
  26.  
  27.  switch($size[2])
  28.  {
  29.  case 1:  //GIF
  30.  $src = imagecreatefromgif($file_name_src);
  31.  break;
  32.  case 2:  //JPEG
  33.  $src = imagecreatefromjpeg($file_name_src);
  34.  break;
  35.  case 3:  //PNG
  36.  $src = imagecreatefrompng($file_name_src);
  37.  break;
  38.  default:
  39.  return FALSE;
  40.  break;
  41.  }
  42.  imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
  43.  
  44.  switch($size[2])
  45.  {
  46.  case 1:
  47.  case 2:
  48.  imagejpeg($dest,$file_name_dest, $quality);
  49.  break;
  50.  case 3:
  51.  imagepng($dest,$file_name_dest);
  52.  }
  53.  return TRUE;
  54.  }
  55.  return FALSE;
  56. }
  57.  
  58. ?>

Ta funkcja jak łatwo się domyślic ta funkcja skaluje obrazki na zadana szerokość dopasowując wysokość obrazka. I działa niby ok - ale czemu plik o rozmiarach 500x375 ma rozmiar około 130 kB :?:
Czy GD jest aż tak ułomne czy to ja coś zrobiłem nie tak :?:
Myślę, że to może to drugie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ale nie wiem mam pojęcia co (IMG:http://forum.php.pl/style_emoticons/default/sad.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: 22.08.2025 - 17:43