Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Ktora funkcja lepsza? dlaczego?
viamarimar
post 12.08.2016, 02:19:39
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Ktora waszym zdaniem funkcja jest lepsza i dlaczego?
Funkcja1:
  1. function resize2($img, $w, $h, $newfilename) {
  2.  
  3. //Check if GD extension is loaded
  4. if (!extension_loaded('gd') && !extension_loaded('gd2')) {
  5. trigger_error("GD is not loaded", E_USER_WARNING);
  6. return false;
  7. }
  8.  
  9. //Get Image size info
  10. $imgInfo = getimagesize($img);
  11. switch ($imgInfo[2]) {
  12. case 1: $im = imagecreatefromgif($img); break;
  13. case 2: $im = imagecreatefromjpeg($img); break;
  14. case 3: $im = imagecreatefrompng($img); break;
  15. default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;
  16. }
  17.  
  18. //If image dimension is smaller, do not resize
  19. if ($imgInfo[0] <= $w && $imgInfo[1] <= $h) {
  20. $nHeight = $imgInfo[1];
  21. $nWidth = $imgInfo[0];
  22. }else{
  23. //yeah, resize it, but keep it proportional
  24. if ($w/$imgInfo[0] > $h/$imgInfo[1]) {
  25. $nWidth = $w;
  26. $nHeight = $imgInfo[1]*($w/$imgInfo[0]);
  27. }else{
  28. $nWidth = $imgInfo[0]*($h/$imgInfo[1]);
  29. $nHeight = $h;
  30. }
  31. }
  32. $nWidth = round($nWidth);
  33. $nHeight = round($nHeight);
  34.  
  35. $newImg = imagecreatetruecolor($nWidth, $nHeight);
  36.  
  37. /* Check if this image is PNG or GIF, then set if Transparent*/
  38. if(($imgInfo[2] == 1) OR ($imgInfo[2]==3)){
  39. imagealphablending($newImg, false);
  40. imagesavealpha($newImg,true);
  41. $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
  42. imagefilledrectangle($newImg, 0, 0, $nWidth, $nHeight, $transparent);
  43. }
  44. imagecopyresampled($newImg, $im, 0, 0, 0, 0, $nWidth, $nHeight, $imgInfo[0], $imgInfo[1]);
  45.  
  46. //Generate the file, and rename it to $newfilename
  47. switch ($imgInfo[2]) {
  48. case 1: imagegif($newImg,$newfilename); break;
  49. case 2: imagejpeg($newImg,$newfilename); break;
  50. case 3: imagepng($newImg,$newfilename); break;
  51. default: trigger_error('Failed resize image!', E_USER_WARNING); break;
  52. }
  53.  
  54. return $newfilename;
  55. }

Funkcja2:
  1. function resize($newWidth, $targetFile, $originalFile) {
  2.  
  3. $info = getimagesize($originalFile);
  4. $mime = $info['mime'];
  5.  
  6.  
  7. switch ($mime) {
  8. case 'image/jpeg':
  9. $image_create_func = 'imagecreatefromjpeg';
  10. $image_save_func = 'imagejpeg';
  11. $new_image_ext = 'jpg';
  12. break;
  13.  
  14. case 'image/png':
  15. $image_create_func = 'imagecreatefrompng';
  16. $image_save_func = 'imagepng';
  17. $new_image_ext = 'png';
  18. break;
  19.  
  20. case 'image/gif':
  21. $image_create_func = 'imagecreatefromgif';
  22. $image_save_func = 'imagegif';
  23. $new_image_ext = 'gif';
  24. break;
  25.  
  26. default:
  27. throw new Exception('Unknown image type.');
  28. }
  29.  
  30. $img = $image_create_func($originalFile);
  31. list($width, $height) = getimagesize($originalFile);
  32.  
  33. $newHeight = ($height / $width) * $newWidth;
  34. $tmp = imagecreatetruecolor($newWidth, $newHeight);
  35. imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  36.  
  37. if (file_exists($targetFile)) {
  38. unlink($targetFile);
  39. }
  40. $image_save_func($tmp, $targetFile);
  41. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Damonsson
post 12.08.2016, 08:23:50
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Funkcja2, ponieważ da się ją przeczytać.

Ten post edytował Damonsson 12.08.2016, 08:24:02
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: 14.08.2025 - 10:13