Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Biblioteka GD: Dlaczego obrazki po zmniejszeniu wychodzą jaśniejsze?
Forum PHP.pl > Forum > PHP
fluffy
Witam,

Chciałbym abyście zobaczyli to samo zdjęcie pod umieszczone pod jednym i drugim linkiem. Jedno adres jest bezpośrednio do pliku, drugi zaś odnosi się do skryptu (poniżej zamieszczonego), który pomniesza zdjęcia i je wyświetla.

http://superstronka.net/grafika/zdj.jpg <-bezpośrednio z serwera
http://superstronka.net/obrazek.php?url=ht...j.jpg&w=434 <- przez skrypt

Nie rozumiem dlaczego gdy zdjęcie "przechodzi" przez skrypt jest jaśniejsze od tego pierwotnego.

Bardzo proszę o sugestie, podpowiedzi rozwiązania. Siedzę nad tym dłuższą chwilę i już mi się skończyły pomysły na zapytania w google...


Oto skrypt przez który przechodzi zdjęcie:

  1.  
  2. <?php
  3.  
  4.  
  5. $filename = $HTTP_GET_VARS['url'];
  6. $wymiar = $HTTP_GET_VARS['w'];
  7. // Content type
  8. header('Content-type: image/jpeg');
  9.  
  10. // Get new dimensions
  11. list($width, $height) = getimagesize($filename);
  12.  
  13.  
  14. if($width>=$height){
  15. $new_height = ($height/100)*(($wymiar*100)/$width);
  16. $new_width = $wymiar;
  17. }
  18.  
  19. if($width<$height){
  20. $new_width = ($width/100)*(($wymiar*100)/$height);
  21. $new_height = $wymiar;
  22. }
  23.  
  24.  
  25. // Resample
  26. $image_p = imagecreatetruecolor($new_width, $new_height);
  27. $image = imagecreatefromjpeg($filename);
  28. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  29.  
  30. // Output
  31. imagejpeg($image_p, null, 100);
  32.  
  33. ?>
  34.  
  35.  
rafalp
Podążając za Twoimi linkami do tych zdjęć - u mnie zdjęcia są identyczne.
Blame
Może to być związane z tym, że funkcja imagecopyresampled oprócz samego skalowania, dodatkowo oblicza kolor pixela na podstawie innych sąsiadujących z nim. To się jakoś nazywało, ktoś to już opisywał na tym forum, niestety pamięć mnie zawodzi. Możesz spróbować użyć zamiast niej imagecopyresized, tyle że jakość może być gorsza.
fluffy
próbowałem z imagecopyresized ale bez poprawy.... usunąłem nawet ten element kodu a propo pomniejszania zdjęcia... czyli wpuściłem zdjęcie do skryptu i odrazu go wypisałem... ale też bez skutku.

Miałem nawet podejrzenie że w jakiś sposób jest zamieniana kolorystyka z RGB na CMYK ale próbowałem oryginalne zdjęcie przerobić na CMYK i nie praktycznie różnił się kolorystycznie od oryginału. Te przez skrypt są zdecydowanie jaśniejsze.
maly_swd
a czy oryginalny JPG jest zapisany jako rgb czy cmyk?
oraz czy nie ma osadzonego profilu kolorow? - nie pamietam czy jpg na to pozwala ale chyba tak
fluffy
oryginalny JPG jest zapisany jako RGB... co do profilu koloru nie bardzo wiem gdzie to sprawdzić, ale jak wiesz jak to sprawdź proszę o ile to pomoże.
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.