Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Słabej jakości miniaturki
jasiek65
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


Witam. Postanowiłem zrobić bardzo prostą galerię zdjęć i wszystko działa dobrze oprócz jednej rzeczy otóż znalazłem gdzieś w internecie skrypt robiący miniaturki oto jego kod:

  1. <?
  2.  
  3. $fol = "./zdjecia/"; // folder ze zdjęciami
  4. $prfx = "min_"; // prefix poprzedzający nazwy miniaturek
  5. $i = 0;
  6.  
  7. $naz = array();
  8. $dane = @file($fol."/dane.txt");
  9. if(is_array($dane)) foreach($dane as $v) {
  10. $t = explode("|", $v);
  11. $naz[] = $t[0];
  12. }
  13.  
  14. $uchwyt = opendir($fol);
  15. while(false !== ($plik = readdir($uchwyt)))
  16. if(is_file($fol."/".$plik) &&
  17. (!is_file($fol."/".$prfx.$plik) || !in_array($plik, $naz)) &&
  18. substr($plik, 0, strlen($prfx)) != $prfx &&
  19. ereg("^.+\.jpe?g$", $plik)) {
  20. $org = imagecreatefromjpeg($fol."/".$plik);
  21. $s_org = imagesx($org);
  22. $w_org = imagesy($org);
  23. $s_min = 150;
  24. if(($w_min = floor(($s_min * $w_org) / $s_org)) > 150) $w_min = 150;
  25. $min = imagecreate($s_min, $w_min);
  26. imagecopyresized($min, $org, 0, 0, 0, 0, $s_min, $w_min, $s_org, $w_org);
  27. imagedestroy($org);
  28. imagejpeg($min, $fol."/".$prfx.$plik, 50);
  29. imagedestroy($min);
  30. if(in_array($plik, $naz)) unset($dane[array_search($plik, $naz)]);
  31. $dane[] = "$plik|$s_org|$w_org|$prfx$plik|$s_min|$w_min\n";
  32. $i++;
  33. }
  34. closedir($uchwyt);
  35.  
  36.  
  37. $fp = fopen($fol."/dane.txt", "w");
  38. flock($fp, 2);
  39. fputs($fp, str_replace("\r", "", join("", $dane)));
  40. flock($fp, 2);
  41. fclose($fp);
  42.  
  43. echo "Ilość utworzonych miniaturek: ".$i;
  44.  
  45. ?>


Skrypt działa ,ale tworzy miniaturki bardzo słabej jakości,rozmazane ogólnie beznadziejne:

Zdjęcie przed kompresją:


Miniaturka:






Czy da się jakoś rozwiązać mój problem modyfikując ten skrypt?


Pozdrawiam:)

Ten post edytował jasiek65 1.02.2011, 11:03:14
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://pl.php.net/manual/pl/function.imagejpeg.php
Zobacz jakie przyjmuje parametry a nastepnie zastanow sie co poprawic w tej funkcji u Siebie

Cytat
Czy da się jakoś rozwiązać mój problem modyfikując ten skrypt?
Po grzyba walisz to pogrubioną i powiększoną czciąnką!


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


mógłbyś mnie nakierować bo skrypt wydaje mi się w porządku

Ten post edytował jasiek65 1.02.2011, 11:08:17
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie chodzi mi o caly skrypt a tylko i wyłącznie o funkcję imagejpeg. Specjalnie do niej zapodałem ci linka do manuala i miales się przyjrzec wszystkim parametrom. Zadanie nie wykonane - do powtórki smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


imagejpeg($min, $fol."/".$prfx.$plik, 50);
czy chodzi o $quality co mam zrobić żeby zdjęcia były tylko pomniejszone?
tak mam to napisać?
[php]imagejpeg($min[, $fol."/".$prfx.$plik[, 250]]); [php]
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jakie 250? Przecież masz jak wol napisane ze quality moze byc max 100

imagejpeg($min, $fol."/".$prfx.$plik, 100);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


wiem ale to nic nie pomaga dalej jest miniaturka taka jak poprzednio
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Teoretycznie powinna byc lepsza. Zaraz lukne jeszcze raz na kod


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #9





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


ok
Czy może to być wina hosta, który blokuje jakąś funkcję?
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Być może chodzi o funkcję imagecopyresized
Ja zamiast jej używam imagecopyresampled i mi Twój obrazek wyszedł idealnie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


a u mnie dalej beznadziejnie
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ok, ja jeszcze zamiast imagecreate uzywam imagecreatetruecolor smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jasiek65
post
Post #13





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 25.05.2010

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


Cytat(nospor @ 1.02.2011, 11:45:43 ) *
Ok, ja jeszcze zamiast imagecreate uzywam imagecreatetruecolor smile.gif


Dzięki ,teraz wszytko myka jak należy rolleyes.gif
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 Aktualny czas: 21.08.2025 - 11:21