Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]]gd2 wyświetlanie plików z określnym formatem
Majzel
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 3.07.2007

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


  1. <?php
  2. $filename = 'zdjecie.jpg';
  3.  
  4. // Set a maximum height and width
  5. $width = 200;
  6. $height = 200;
  7.  
  8. // Content type
  9. header('Content-typ: image/jpeg');
  10.  
  11. // Get new dimensions
  12. list($width_orig, $height_orig) = getimagesize($filename);
  13.  
  14. $ratio_orig = $width_orig/$height_orig;
  15.  
  16. if ($width/$height > $ratio_orig) {
  17.   $width = $height*$ratio_orig;
  18. } else {
  19.   $height = $width/$ratio_orig;
  20. }
  21.  
  22. // Resample
  23. $image_p = imagecreatetruecolor($width, $height);
  24. $image = imagecreatefromjpeg($filename);
  25. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  26.  
  27. // Output
  28. imagejpeg($image_p, null, 100);
  29. ?>


Taki kod jak powyżej, niby wszystko ok, no bo działa, kod z manuala php, jednak zastanawia mnie, w jaki sposób by to mogło działać, gdyby tak mógł ten skrypt obsługiwać każde rozszerzenie oprócz .jpeg ?
Jak by go przerobić?
Tzn. wiem, że można by to zrobić instrukcją warunkową if else, na zasadzie sprawdzania mime/type, jednak czy jest inny sposób, który wyświetlał by dany obrazek, a nie tylko np. jpeg? a wiec coś zamiast tych funkcji imagejpeg,image gif, żeby działało na kazdy obrazek? I czy to ma sens ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Lejto
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


sens nie wiem czy ma ale kiedyś pisałem coś podobnego i dałęm on na gif itp i switcha kon na to i na tamto typ pliku do zmiennej i działało
Go to the top of the page
+Quote Post
-gox-
post
Post #3





Goście







najprosciej:
  1. <?php
  2. $filename = 'zdjecie.jpg';
  3. $ext = preg_match('#.(.*?)$#', rtrim($filename));
  4. $ext = $ext[1];
  5.  
  6. // Set a maximum height and width
  7. $width = 200;
  8. $height = 200;
  9.  
  10. // Content type
  11. header('Content-ty: image/'.$ext);
  12.  
  13. // Get new dimensions
  14. list($width_orig, $height_orig) = getimagesize($filename);
  15.  
  16. $ratio_orig = $width_orig/$height_orig;
  17.  
  18. if ($width/$height > $ratio_orig) {
  19.  $width = $height*$ratio_orig;
  20. } else {
  21.  $height = $width/$ratio_orig;
  22. }
  23.  
  24. // Resample
  25. $image_p = imagecreatetruecolor($width, $height);
  26. $image = imagecreatefromstring(file_get_contents($filename));
  27.  
  28. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  29.  
  30. // Output
  31. imagegif($image_p, null, 100);
  32. ?>

tylko ze to tez jest troche oglupianie, plik wylatuje teoretycznie jako gif.. ale robiony jest ze stringu jpega... w kazdym razie dziala i zachowuje transparentosc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
p.s dodaj jeszcze ob_start() zeby content len dac w naglowku
Go to the top of the page
+Quote Post

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: 23.08.2025 - 09:02