Loading:

Książka Zend Framework 3. Poradnik Programisty.

imagefilter
bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

Dodaje dany filtr do obrazka



Parametry

 

obraz Zasób obrazu, zwrócony przez jedną z funkcji tworzących obrazy, taką jak imagecreatetruecolor().


filtertype - Może być jedną z poniżyszch wartości:

IMG_FILTER_NEGATE: Zwraca wszystkie kolory obrazka

IMG_FILTER_GRAYSCALE: Konwertuje obrazek do skali szarości

IMG_FILTER_BRIGHTNESS: Zmienia jasność obrazu. Użyj arg1 do ustawienia poziomu jasności

IMG_FILTER_CONTRAST:  Zmienia kontrast obrazka. Użyj arg1 do ustawienia pozomu kontrastu

IMG_FILTER_COLORIZE: Tak jak IMG_FILTER_GRAYSCALE, oczekuje określenia koloru Użyj arg1 , arg2 i arg3 w formie red , blue , green i arg4 dla kanału alpha . Zakres kolorów od 0 do 255.


IMG_FILTER_EDGEDETECT: Podkreśla krawędzie.

IMG_FILTER_EMBOSS: Uwypukla obraz

IMG_FILTER_GAUSSIAN_BLUR: Rozmazuje obraz metodą Gaussa

IMG_FILTER_SELECTIVE_BLUR: Rozmazuje obraz.

MG_FILTER_MEAN_REMOVAL: Tworzy efekt szkicu

IMG_FILTER_SMOOTH: Wygładza obraz. Użyj arg1 do ustawienia poziomu wygładzenia

IMG_FILTER_PIXELATE: Dodoaje od obrazu efekt pikselowania, Użyj arg1 do ustalenia wielkości bloku i arg2 do efektu pikselowania



arg1

IMG_FILTER_BRIGHTNESS: Poziom jasności

IMG_FILTER_CONTRAST: Poziom kontrastu

IMG_FILTER_COLORIZE: Wartość komponentu

IMG_FILTER_SMOOTH: Poziom wygładzenia

IMG_FILTER_PIXELATE: Rozmiar bloku w pikselach



arg2

IMG_FILTER_COLORIZE: Wartość zielonego komponentu

IMG_FILTER_PIXELATE: Czy kożystać zzaawansowanego efektu pikselowania (domyślnie FALSE)



arg3

IMG_FILTER_COLORIZE: Wartość niebieskiego komponetu



arg4

IMG_FILTER_COLORIZE: Kanał przeźroczystości, Wartość pomiędzy 0 a 127. 0 oznacza brak przeźroczystości 127 pełną przeźroczystość



Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.



Napisz Artykuł

Listing



Przykład #1 imagefilter() przykład skali szarości
<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'KOnwertowanie obrazu do skali szarości.';

    imagepng($im, 'dave.png');
}
else
{
    echo 'błąd.';
}

imagedestroy($im);
?>



Przykład #2 imagefilter() przykład jasności
<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 'Zmiana jasności obrazka.';

    imagepng($im, 'sean.png');
    imagedestroy($im);
}
else
{
    echo 'błąd.';
}
?>



Przykład #3 imagefilter() Przykłąd kolorowania
<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
    echo 'Z powodzeiam zaciągnięto zieleń.';

    imagepng($im, 'philip.png');
    imagedestroy($im);
}
else
{
    echo 'błąd.';
}
?>




Przykład #4 imagefilter() Przykłąd negatywu
<?php

function negate($im)
{
    if(function_exists('imagefilter'))
    {
        return imagefilter($im, IMG_FILTER_NEGATE);
    }

    for($x = 0; $x < imagesx($im); ++$x)
    {
        for($y = 0; $y < imagesy($im); ++$y)
        {
            $index = imagecolorat($im, $x, $y);
            $rgb = imagecolorsforindex($index);
            $color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

            imagesetpixel($im, $x, $y, $color);
        }
    }

    return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
    echo 'KOnwersja do negatywu udana.';

    imagejpeg($im, 'kalle.jpg', 100);
    imagedestroy($im);
}
else
{
    echo 'błąd.';
}
?>




Przykład #5 imagefilter() Przykład pikselowania
<?php

$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');


$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));


imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);


imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);


header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=3&t=4176

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors