GD ve Resim İşlevleri
PHP Manual

imagefilter

(PHP 5)

imagefilter — Bir resme bir süzgeç uygular

Açıklama

bool imagefilter ( resource $resim , int $süzgeç [, int $d1 [, int $d2 [, int $d3 [, int $d4 ]]]] )

imagefilter() işlevi, türü süzgeç ile belirtilen süzgeci resim resmine uygular.

Değiştirgeler

resim

imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.

süzgeç

süzgeç şunlardan biri olabilir:

  • IMG_FILTER_NEGATE: Resimdeki tüm renkleri zıt renge dönüştürür.
  • IMG_FILTER_GRAYSCALE: Resmi gri tonlamalı hale getirir.
  • IMG_FILTER_BRIGHTNESS: Resmin parlaklığın değiştirir. Parlaklık seviyesini belirtmek için d1 değiştirgesini kullanın.
  • IMG_FILTER_CONTRAST: Resmin karşıtlık seviyesini değiştirir. Karşıtlık seviyesini belirtmek için d1 değiştirgesini kullanın.
  • IMG_FILTER_COLORIZE: Rengi sizin belirtmeniz dışında IMG_FILTER_GRAYSCALE gibidir. Kırmızı, yeşil ve mavi renk seviyeleri belirtmek için sırayla d1, d2 ve d3 değiştirgelerini, alfa kanalı için de d4 değiştirgesini kullanın. Ana renklerin seviyesi 0 ile 255 arasında belirtilebilir.
  • IMG_FILTER_EDGEDETECT: Resmin kenarlarını vurgulamak için kenar algılaması kullanılır.
  • IMG_FILTER_EMBOSS: Resme kabartma uygular.
  • IMG_FILTER_GAUSSIAN_BLUR: Resmi Gauss yöntemiyle bulanıklaştırır.
  • IMG_FILTER_SELECTIVE_BLUR: Resmi bulanıklaştırır.
  • IMG_FILTER_MEAN_REMOVAL: Karalama taslak etkisi oluşturmak için silme işlemi uygular.
  • IMG_FILTER_SMOOTH: Resmin sert hatlarını yumuşatır. Yumuşatma seviyesini belirtmek için d1 değiştirgesini kullanın.
  • IMG_FILTER_PIXELATE: Resme mozaik etkisi verir. Mozaik boyutu için d1 mozaik etki kipini belirtmek için d2 değiştirgesini kullanın.

d1

  • IMG_FILTER_BRIGHTNESS: Parlaklık seviyesi.
  • IMG_FILTER_CONTRAST: Karşıtlık seviyesi.
  • IMG_FILTER_COLORIZE: Kırmızı bileşenin seviyesi.
  • IMG_FILTER_SMOOTH: Yumuşatma seviyesi.
  • IMG_FILTER_PIXELATE: Piksel cinsinden mozaik boyu.

d2

  • IMG_FILTER_COLORIZE: Yeşil bileşenin seviyesi.
  • IMG_FILTER_PIXELATE: Gelişkin mozaik etkisinin kullanılıp kullanılmayacağı (FALSE öntanımlıdır).

d3

  • IMG_FILTER_COLORIZE: Mavi bileşenin seviyesi.

d4

  • IMG_FILTER_COLORIZE: Alfa kanalı. 0-127 arasında belirtilebilir. 0 tamamen mat, 127 ise tamamen şeffaf demektir.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.0 Mozaik desteği (IMG_FILTER_PIXELATE) eklendi.
5.2.5 IMG_FILTER_COLORIZE için alfa kanalı desteği eklendi.

Örnekler

Örnek 1 - imagefilter() gri tonlama örneği

<?php
$im 
= imagecreatefrompng('dave.png');

if(
$im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 
'Resme gri tonlama uygulandı.';

    
imagepng($im, 'dave.png');
}
else
{
    echo 
'Resme gri tonlama uygulanamadı.';
}

imagedestroy($im);
?>

Örnek 2 - imagefilter() parlaklık örneği

<?php
$im 
= imagecreatefrompng('sean.png');

if(
$im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 
'Resmin parlaklığı değişti.';

    
imagepng($im, 'sean.png');
    
imagedestroy($im);
}
else
{
    echo 
'Resmin parlaklığı değiştirilemedi.';
}
?>

Örnek 3 - imagefilter() renklendirme örneği

<?php
$im 
= imagecreatefrompng('philip.png');

/* K, Y, M olarak 0, 255, 0 yeşildir */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
    echo 
'Resim yeşertildi.';

    
imagepng($im, 'philip.png');
    
imagedestroy($im);
}
else
{
    echo 
'Resim yeşertilemedi.';
}
?>

Örnek 4 imagefilter() negatiflik örneği

<?php
// İşlevin taşınabilir olması için, yani imagefilter() kullanamadığımız
// durumlar için kendi negatiflik işlevimizi yazalım
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 
'Resmin negatifi başarıyla elde edildi.';

    
imagejpeg($im, 'kalle.jpg', 100);
    
imagedestroy($im);
}
else
{
    echo 
'Resmin negatifi elde edilemedi.';
}
?>

Örnek 5 imagefilter() mozaikleştirme örneği

<?php
// PHP logosunu yükleyelim, farkları göstermek için bize iki resim lazım
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// Üzerinde farkları göstermek için bir tuval oluşturalım
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Her örneğe 3 piksellik mozaikleştirme uygulayalım
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Farkları çıktı resminde karıştıralım
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);

// Farkları çıktılayalım
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

imagefilterpixelate.png

Notlar

Bilginize: Bu işlev sadece, PHP, PHP paketinde bulunan GD kütüphanesi ile derlenmişse kullanılabilir.

Ayrıca Bakınız


GD ve Resim İşlevleri
PHP Manual