PHP生成的SVG作为背景图像

时间:2015-09-24 10:48:46

标签: php css svg

我想根据选择的背景颜色动态更改SVG的颜色。这是有效的,但它不能用作背景图像,因为文件名是.php

这是我的PHP代码,它使我的图像,我没有包括所有的路径:

abbr

我只是将它放在background-image属性中,如下所示:

<?php 
header('Content-type: image/svg+xml');

function adjustBridgtness($rgb, $steps) {
    //Only allow RGB value to be sent
    if (count($rgb) == 3) {
        //Negative darker, positive brighter
        $steps = max(-255, min(255, $steps));

        //New color
        $new_color = array();

        foreach($rgb as $color) {
            //$color = hexdec($color); 
            $color = max(0,min(255,$color + $steps));
            $new_color[] = $color;
        }

        return $new_color;
    }
}
//$colors[0] = array(67,189,151); //Row 1

$colors[0] = adjustBridgtness(array(67,189,151),0); //Row 1
$colors[1] = array(81,193,159); //Row 2
$colors[2] = array(95,199,165); //Row 3
$colors[3] = array(107,203,173); //Row 4
$colors[4] = array(127,211,185); //Row 5
$colors[5] = array(81,193,159); //Diagonal Lines
$colors[6] = array(127,211,185); //Verticle Line

?>
<svg xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    width="796px" height="404px" viewBox="0 0 796 404">
    <path fillRule="evenodd" d="M 349.5 153.12C 349.5 153.12 396.88 200.5 396.88 200.5 396.88 200.5 349.5 247.88 349.5 247.88 349.5 247.88 302.12 200.5 302.12 200.5 302.12 200.5 349.5 153.12 349.5 153.12Z" fill="rgb(<?=$colors[0][0]?>,<?=$colors[0][1]?>,<?=$colors[0][2]?>)"/>
    <path fillRule="evenodd" d="M 251.5 153.12C 251.5 153.12 298.88 200.5 298.88 200.5 298.88 200.5 251.5 247.88 251.5 247.88 251.5 247.88 204.12 200.5 204.12 200.5 204.12 200.5 251.5 153.12 251.5 153.12Z" fill="rgb(<?=$colors[0][0]?>,<?=$colors[0][1]?>,<?=$colors[0][2]?>)"/>
</svg>

这不起作用,因为它没有显示,我做错了什么?

P.S。只有网站管理员可以更改背景颜色,生成SVG并更改颜色时更改现有文件(如background-image:url(images/image.php); ,而不是每次加载页面时都生成颜色? / strong>

1 个答案:

答案 0 :(得分:1)

mmh,它在这里工作......(至少对我而言)

&#13;
&#13;
<div style="width:400px;height:400px;background-image:url(http://karl.uphero.com/images/background_banner1.php)"></div>
&#13;
&#13;
&#13;