Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload - słaba jakość zdjęć
greguskus
post 12.10.2018, 16:44:25
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.03.2011

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


Witam wszystkich. Mam problem przy uploadzie zdjęć z panelu admina, zmniejszają się do 800x450px co akurat jest ok, natomiast bardzo tracą na jakości. Takie zdjęcie na serwerze zajmuje 50 KB a to samo zdjęcie zmniejszone programem graficznym na komputerze do 800x450px zajmuje 100 KB, różnica oczywiście jest ogromna. Wydaje się że skrypt dodatkowo zmniejsza jakość. Możecie zerknąć w wolnej chwili na kod i podać jakieś sugestie jak to zmienić?

Tak wygląda kod:

  1. if ($action == "new_media") {
  2. if ($_FILES['image']['name'] != "") {
  3. $errors= "";
  4. $file_name = "media".time().".jpg";
  5. $file_size = $_FILES['image']['size'];
  6. $file_tmp = $_FILES['image']['tmp_name'];
  7. $file_type = $_FILES['image']['type'];
  8. $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
  9. //$file_name = "defaultimage".$file_ext;
  10. $expensions= array("jpeg","jpg","png");
  11.  
  12. if(in_array($file_ext,$expensions)=== false){
  13. $errors="extension not allowed, please choose a JPEG or PNG file.<br>";
  14. }
  15.  
  16. if($errors=="") {
  17. if($file_ext == "png"){
  18. $images = $_FILES["image"]["tmp_name"];
  19. $new_images = "media".time().".jpg";
  20.  
  21. $width=800;
  22. $height=450;
  23.  
  24. $images_orig = imagecreatefrompng($images);
  25. $photoX = ImagesX($images_orig);
  26. $photoY = ImagesY($images_orig);
  27. $images_fin = ImageCreateTrueColor($width, $height);
  28. $white = imagecolorallocate($images_fin, 255, 255, 255);
  29. imagefilledrectangle($images_fin, 0, 0, $width, $height, $white);
  30.  
  31. ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width, $height, $photoX, $photoY);
  32. ImageJPEG($images_fin,"../images/uploads/".$new_images);
  33. ImageDestroy($images_orig);
  34. ImageDestroy($images_fin);
  35.  
  36.  
  37. echo $new_images;
  38. }else{
  39. $images = $_FILES["image"]["tmp_name"];
  40. $new_images = "media".time().".jpg";
  41.  
  42. $width=800;
  43. $height=450;
  44.  
  45.  
  46. $images_orig = ImageCreateFromJPEG($images);
  47. $photoX = ImagesX($images_orig);
  48. $photoY = ImagesY($images_orig);
  49. $images_fin = ImageCreateTrueColor($width, $height);
  50. ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width, $height, $photoX, $photoY);
  51. ImageJPEG($images_fin,"../images/uploads/".$new_images);
  52. ImageDestroy($images_orig);
  53. ImageDestroy($images_fin);
  54.  
  55.  
  56. echo $new_images;
  57. }
  58. }
  59. }else{
  60. echo '<div class="alert alert-danger alert-dismissible fade in" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button><strong>Please Browse a new Image!</strong></div>';
  61. }


Ten post edytował greguskus 12.10.2018, 16:48:18
Go to the top of the page
+Quote Post
trueblue
post 12.10.2018, 16:51:44
Post #2





Grupa: Zarejestrowani
Postów: 5 194
Pomógł: 1441
Dołączył: 11.03.2014

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


http://php.net/manual/en/function.imagejpeg.php
Go to the top of the page
+Quote Post
greguskus
post 12.10.2018, 17:18:35
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.03.2011

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


Zrobiłem smile.gif Dzięki za pomoc.
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: 21.10.2018 - 09:29