Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css, ajax] Efekt szarości
Forum PHP.pl > Forum > Przedszkole
potreb
W jaki sposób można zrobić effekt szarości dla obrazka?

Style="filter: gray" nie działa, a inne js-owe bajery też padaja przy Firefoxie, myślałem żeby zrobić taki efekt z mootools.
devnul
bo atrybut filter to wynalazek microsoftu i działą TYLKO na IE
żeby zrobić szary obrazek działający na współczesnych (wszystkich) przeglądarkach to niestety będziesz go sam (skryptem?) konwertować do skali szarości
potreb
Tylko metoda gd2? Czy jest jakiś inny sposób, np ajax.
devnul
możesz nawet ręcznie jak gd nie odpowiada. co do ajax'a to - hmm. czy Ty wogole wiesz o czym piszesz? google -> ajax było? chyba nie bo widze że nie masz zielonego pojęcia co to jest ajax.
Ajax to "technika" pozawalająca na wykonanie rządania do serwera z zapytaniem o dane bez przeładowania strony. Nic więcej.
potreb
Przez mootools da się wykonać różne wizualne rzeczy, patrzyłem na specyfikację ale nie znalazłem żadnego efektu stosowanego na obrazku
yaotzin
  1. <?php
  2. // The file you are grayscaling
  3. $file = 'yourfile.jpg';
  4.  
  5. // This sets it to a .jpg, but you can change this to png or gif if that is what y
    ou are working with
  6. header('Content-type: image/jpeg');
  7.  
  8. // Get the dimensions
  9. list($width, $height) = getimagesize($file);
  10.  
  11. // Define our source image
  12. $source = imagecreatefromjpeg($file);
  13.  
  14. // Creating the Canvas
  15. $bwimage= imagecreate($width, $height);
  16.  
  17. //Creates the 256 color palette
  18. for ($c=0;$c<256;$c++)
  19. {
  20. $palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
  21. }
  22.  
  23. //Creates yiq function
  24. function yiq($r,$g,$b)
  25. {
  26. return (($r*0.299)+($g*0.587)+($b*0.114));
  27. }
  28.  
  29. //Reads the origonal colors pixel by pixel
  30. for ($y=0;$y<$height;$y++)
  31. {
  32. for ($x=0;$x<$width;$x++)
  33. {
  34. $rgb = imagecolorat($source,$x,$y);
  35. $r = ($rgb >> 16) & 0xFF;
  36. $g = ($rgb >> 8) & 0xFF;
  37. $b = $rgb & 0xFF;
  38.  
  39. //This is where we actually use yiq to modify our rbg values, and then convert the
    m to our grayscale palette
  40. $gs = yiq($r,$g,$b);
  41. imagesetpixel($bwimage,$x,$y,$palette[$gs]);
  42. }
  43. }
  44.  
  45. // Outputs a jpg image, but you can change this to png or gif if that is what you 
    are working with
  46. imagejpeg($bwimage);
  47. ?>


Kod pobrany ze strony http://forums.digitalpoint.com/showthread.php?t=613467
potreb
W manualu też mam gotowe rozwiązania, no cóż jedynie zostaje mi gd2 do moich potrzeb
devnul
motools to nie biblioteka do obsługi ajax (jest on tylko jedną z jej funkcji) a framework javascript - stąd różne efekty - ale tylko takie które osiągnołbyś i bez tego RDFM
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.