imagefilter

(PHP 5, PHP 7, PHP 8)

imagefilterBir görüntüye bir süzgeç uygular

Açıklama

imagefilter(GdImage$image, int$süzgeç, array|int|float|bool...$seçenekler): bool

imagefilter() işlevi, türü süzgeç ile belirtilen süzgeci görüntüye uygular.

Bağımsız Değişkenler

görüntü

imagecreatetruecolor() gibi bir görüntü oluşturma işlevinden dönen bir GdImage nesnesi.

süzgeç

süzgeç şunlardan biri olabilir:

  • IMG_FILTER_NEGATE: Görüntüdeki tüm renkleri zıt renge dönüştürür.
  • IMG_FILTER_GRAYSCALE: Görüntüyü gri tonlamalı hale getirir. REC.601 luma (Y') hesaplamasındaki katsayılar kullanılarak kırmızı, yeşil ve mavi bileşenlerin ağırlıklı ortalamalarından gri tonlama elde edilir.
  • IMG_FILTER_BRIGHTNESS: Görüntünün parlaklığını değiştirir. Parlaklık seviyesini belirtmek için seçenekler[0] bağımsız değişkenini kullanın. Parlaklık -255 ile 255 arasındadır.
  • IMG_FILTER_CONTRAST: Görüntünün karşıtlık seviyesini değiştirir. Karşıtlık seviyesini belirtmek için seçenekler[0] bağımsız değişkenini 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 seçenekler[0], seçenekler[1] ve seçenekler[2] bağımsız değişkenlerini, alfa kanalı için de seçenekler[3] bağımsız değişkenini kullanın. Ana renklerin seviyesi 0 ile 255 arasında belirtilebilir.
  • IMG_FILTER_EDGEDETECT: Görüntünün kenarlarını vurgulamak için kenar algılaması kullanılır.
  • IMG_FILTER_EMBOSS: Görüntüye kabartma uygular.
  • IMG_FILTER_GAUSSIAN_BLUR: Görüntüyü Gauss yöntemiyle bulanıklaştırır.
  • IMG_FILTER_SELECTIVE_BLUR: Görüntüyü bulanıklaştırır.
  • IMG_FILTER_MEAN_REMOVAL: Karalama taslak etkisi oluşturmak için silme işlemi uygular.
  • IMG_FILTER_SMOOTH: Görüntünün sert hatlarını yumuşatır. Yumuşatma seviyesini belirtmek için seçenekler[0] bağımsız değişkenini kullanın.
  • IMG_FILTER_PIXELATE: Görüntüye mozaik etkisi verir. Mozaik boyutu için seçenekler[0] mozaik etki kipini belirtmek için seçenekler[1] bağımsız değişkenini kullanın.
  • IMG_FILTER_SCATTER: Görüntüye saçılma etkisi verir, etki gücünü tanımlamak için seçenekler[0] ve seçenekler[1]'i ve yalnızca seçili piksel renklerini uygulamak için seçenekler[2]'yi kullanın.
seçenekler[0]

seçenekler[1]

seçenekler[2]

seçenekler[3]

  • 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
8.0.0görüntü bağımsız değişkeninde artık bir GdImage nesnesi aktarmak gerekiyor; evvelce resource türünde geçerli bir gd değeri gerekirdi.
7.4.0 Saçılma desteği (IMG_FILTER_SCATTER) eklendi.

Örnekler

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

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

if(
$im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
echo
'Görüntüye gri tonlama uygulandı.';

imagepng($im, 'dave.png');
}
else
{
echo
'Görüntüye 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
'Görüntünün parlaklığı değişti.';

imagepng($im, 'sean.png');
imagedestroy($im);
}
else
{
echo
'Görüntünün parlaklığı değiştirilemedi.';
}
?>

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

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


if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
echo
'Görüntü yeşertildi.';

imagepng($im, 'philip.png');
imagedestroy($im);
}
else
{
echo
'Görüntü 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
'Görüntünün negatifi başarıyla elde edildi.';

imagejpeg($im, 'kalle.jpg', 100);
imagedestroy($im);
}
else
{
echo
'Görüntünün negatifi elde edilemedi.';
}
?>

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

<?php
// PHP logosunu yükleyelim, farkları göstermek için bize iki görüntü 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ı görüntüsünde 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:

Örnek çıktısı: imagefilter() mozaikleştirme

Örnek 6 - imagefilter() saçılma örneği

<?php
// PHP logosunu yükleyelim
$logo = imagecreatefrompng('./php.png');

// Görüntüye çok yumuşak saçılma etkisi uygulayalım
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

// Saçılma etkili görüntüyü çıktılayalım
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

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

Örnek çıktısı: imagefilter() saçılma

Notlar

Bilginize: IMG_FILTER_SCATTER sonucu daima rastgeledir.

Ayrıca Bakınız

To Top