2012-02-02 36 views
1

我需要在PHP中为图像制作浮雕效果。但我需要保持真实的色彩,就像地球图片中http://loriweb.pair.com/8udf-emboss.htmlPHP浮雕颜色

我的最终目标是使这样http://www.flickr.com/photos/[email protected]/6729984045/in/photostream/效果,我只能通过给灰线为每平方米那儿让它这样http://www.flickr.com/photos/[email protected]/6759029339/

到目前为止,我只在使用imageconvolution或IMG_FILTER_EMBOSS时发现浮雕效果,使图像颜色变得像灰色 。 我该怎么做?

回答

3

您在“globe”示例中显示的浮雕效果只是一个通用卷积核心。您可以使用imageconvolution()完成相同的效果:

$kernel = array(array(1, 1, -1), array(1, 1, -1), array(1, -1, -1)); 
imageconvolution($image, $kernel, 1, 0); 
+0

Wow Russel,它的工作原理!谢谢^^。但是我需要解释,哪一部分让颜色保持不变? – just2cya 2012-02-02 06:56:37

+0

图像卷积仅仅意味着输出图像中的每个像素都是通过将九个附近像素乘以内核中的值而得到的。所以,你正在使用的内核只是把中心像素和所有的像素加起来并放在它的左边,然后把它们从右边减掉,得到最终结果。根据输出结果,我认为'IMG_FILTER_EMBOSS'正在做一些不同的事情 - 也许是一种Sobel渐变。 – 2012-02-02 14:23:53