Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GD2 i zła jakość jpg
Forum PHP.pl > Forum > PHP
Gligamesh
Witam

wykonałem galerie używając GD2 i nagle widzę że fotki które są skalowane na mniejsze tracą ostrość... czy jest na to jakiś sposób ?

Czy może przejście na exif by załatwiło sprawę ?
DjKermit
bool imagejpeg ( resource $image [, string $filename [, int $quality]] )
Gligamesh
nie chodzi mi o kompresje jpg tylko o ostrość.
legorek
To wynika z zastosowanego algorytmu resamplingu, skalowane obrazy zawsze trochę tracą na ostrości dlatego po zmniejszeniu musisz je trochę wyostrzyć.

O ile się nie mylę to w czystym PHP nie ma gotowej funkcji, ale nie ma problemu żeby napisać ją samemu.

Polecam lekturę: http://vikjavev.no/computing/ump.php

Aha i pamiętaj że takie operacje trochę trwają.
Gligamesh
ok, dzięki tak już konkretniej smile.gif

zabieram się za czytanie.
mike
Podstawowe pytanie: Z jakiej fukcji korzystasz?
imagecopyresampled() czy imagecopyresized()
Lepszą jakość uzyskasz dzięki imagecopyresampled()
Gligamesh
używam przeróbki z manuala

  1. <?php
  2. $width = 800;
  3. $height = 600;
  4.  
  5.  
  6. list($width_orig, $height_orig) = getimagesize($filename);
  7.  
  8. $ratio_orig = $width_orig/$height_orig;
  9.  
  10. if ($width/$height > $ratio_orig) {
  11.  $width = $height*$ratio_orig;
  12. } else {
  13.  $height = $width/$ratio_orig;
  14. }
  15.  
  16. $image_p = imagecreatetruecolor($width, $height);
  17. $image = imagecreatefromjpeg($filename);
  18. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  19.  
  20. imagejpeg($image_p, $dir.$name, 90);
  21. ?>


czyli imagecopyresampled()

z tym wyostrzeniem wygląda fajno, mam tylko nadzieje że to sprzętu nei zabije..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.