(PHP 5, PHP 7, PHP 8)
imagefilter — Bir görüntüye bir süzgeç uygular
imagefilter() işlevi, türü süzgeç
ile belirtilen süzgeci görüntüye uygular.
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]
IMG_FILTER_BRIGHTNESS: Parlaklık seviyesi.
IMG_FILTER_CONTRAST: Karşıtlık seviyesi.
IMG_FILTER_COLORIZE: Kırmızı bileşenin değeri.
IMG_FILTER_SMOOTH: Yumuşatma seviyesi.
IMG_FILTER_PIXELATE: Piksel cinsinden mozaik boyu.
IMG_FILTER_SCATTER: Etki eksiltme seviyesi.
Bu, seçenekler[1] ile ayarlanan toplama
seviyesinden daha yüksek veya ona eşit olmamalıdır.
seçenekler[1]
IMG_FILTER_COLORIZE: Yeşil bileşenin değeri.
IMG_FILTER_PIXELATE: Gelişkin mozaik etkisinin
kullanılıp kullanılmayacağı (false öntanımlıdır).
IMG_FILTER_SCATTER: Etki toplama seviyesi.
seçenekler[2]
IMG_FILTER_COLORIZE: Mavi bileşenin değeri.
IMG_FILTER_SCATTER: Etkiyi uygulamak için isteğe
bağlı dizi indisli renk değerleri.
seçenekler[3]
IMG_FILTER_COLORIZE: Alfa kanalı. 0-127
arasında belirtilebilir. 0 tamamen mat, 127 ise tamamen şeffaf
demektir.
| Sürüm: | Açıklama |
|---|---|
| 8.0.0 |
gö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.
|
Ö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');
/* K, Y, M olarak 0, 255, 0 yeşildir */
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 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:
Bilginize:
IMG_FILTER_SCATTERsonucu daima rastgeledir.