Source of: conv_filter.php
<?php
extract($_GET, EXTR_SKIP|EXTR_PREFIX_ALL|EXTR_REFS, '');
function relief($im)
{
$filter=imlib_create_filter();
$c=IMLIB_CHANNEL_RED|IMLIB_CHANNEL_GREEN|IMLIB_CHANNEL_BLUE;
imlib_filter_set_red ($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_red ($filter, 0, 0, 0, 1, 1, 1);
imlib_filter_set_green ($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_green ($filter, 0, 0, 0, 1, 1, 1);
imlib_filter_set_blue ($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_blue ($filter, 0, 0, 0, 1, 1, 1);
imlib_filter_constants ($filter, 0, 768, 768, 768);
imlib_filter_divisors ($filter, 0, 6, 6, 6);
imlib_image_filter($im,$filter);
imlib_free_filter($filter);
}
function edge_detect($im)
{
$filter=imlib_create_filter();
imlib_filter_set_red ($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_red ($filter, -1, 0, 0, -3, -3, -3);
imlib_filter_set_red ($filter, -1, 1, 0, -1, -1, -1);
imlib_filter_set_red ($filter, 0, -1, 0, -3, -3, -3);
imlib_filter_set_red ($filter, 0, 0, 0, 16, 16, 16);
imlib_filter_set_red ($filter, 0, 1, 0, -3, -3, -3);
imlib_filter_set_red ($filter, 1, -1, 0, -1, -1, -1);
imlib_filter_set_red ($filter, 1, 0, 0, -3, -3, -3);
imlib_filter_set_red ($filter, 1, 1, 0, -1, -1, -1);
imlib_filter_set_green($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_green($filter, -1, 0, 0, -3, -3, -3);
imlib_filter_set_green($filter, -1, 1, 0, -1, -1, -1);
imlib_filter_set_green($filter, 0, -1, 0, -3, -3, -3);
imlib_filter_set_green($filter, 0, 0, 0, 16, 16, 16);
imlib_filter_set_green($filter, 0, 1, 0, -3, -3, -3);
imlib_filter_set_green($filter, 1, -1, 0, -1, -1, -1);
imlib_filter_set_green($filter, 1, 0, 0, -3, -3, -3);
imlib_filter_set_green($filter, 1, 1, 0, -1, -1, -1);
imlib_filter_set_blue ($filter, -1, -1, 0, -1, -1, -1);
imlib_filter_set_blue ($filter, -1, 0, 0, -3, -3, -3);
imlib_filter_set_blue ($filter, -1, 1, 0, -1, -1, -1);
imlib_filter_set_blue ($filter, 0, -1, 0, -3, -3, -3);
imlib_filter_set_blue ($filter, 0, 0, 0, 16, 16, 16);
imlib_filter_set_blue ($filter, 0, 1, 0, -3, -3, -3);
imlib_filter_set_blue ($filter, 1, -1, 0, -1, -1, -1);
imlib_filter_set_blue ($filter, 1, 0, 0, -3, -3, -3);
imlib_filter_set_blue ($filter, 1, 1, 0, -1, -1, -1);
imlib_filter_divisors ($filter, 0, 3, 3, 3);
imlib_image_filter($im,$filter);
imlib_free_filter($filter);
}
function emboss($im)
{
$filter=imlib_create_filter();
imlib_filter_set($filter, -1, -1, 0, 1, 1, 1);
imlib_filter_set($filter, 0, -1, 0, 1, 1, 1);
imlib_filter_set($filter, -1, 0, 0, 1, 1, 1);
imlib_filter_set($filter, 0, 0, 0, 1, 1, 1);
imlib_filter_set($filter, 1, 0, 0, -1, -1, -1);
imlib_filter_set($filter, 0, 1, 0, -1, -1, -1);
imlib_filter_set($filter, 1, 1, 0, -1, -1, -1);
imlib_image_filter($im,$filter);
imlib_free_filter($filter);
}
$im = imlib_load_image('test.jpg');
if ($_type==1) emboss($im);
if ($_type==2) relief($im);
if ($_type==3) edge_detect($im);
Header('Content-type: image/jpeg');
imlib_dump_image($im);
imlib_free_image($im);
?>