我是php中的图像创建新手。
如果更改参数值,则栏进度也应更改为传递值
我该如何实现类似的东西?
如果有人能说清楚,我将不胜感激
感谢帮助inadvance
更新:我自己想出来了,谢谢Greg以及所有建议...请测试此代码
<?php
header("Content-type: image/png");
$p = $_GET['percentage']; //(e.g. 20);
$w = 50;
$h = 100;
$nh = $h - ($h*$p)/100;
$im = imagecreatetruecolor($w, $h);
$color1 = imagecolorallocate($im, 238,236,224);
$color2 = imagecolorallocate($im, 201,216,209);
//background
imagefilledrectangle($im, 0, 0, $w, $h, $color1);
//front
imagefilledrectangle($im, 0, $nh, $w, $h, $color2);
//output the image
imagepng($im);
imagedestroy($im);
?>
答案 0 :(得分:2)
在php中使用GD,您可以使用以下代码段:
header("Content-type: image/png");
<?
$percent = $_GET['percent']; //(e.g. 0.2);
$height = 100;
$im = imagecreatetruecolor(55, $height);
$color1 = imagecolorallocate($im, 55,255,255);
$color2 = imagecolorallocate($im, 102,102,0);
imagefilledrectangle($im, 0, 0, 55, $height * $percent, $color1 );
imagefilledrectangle($im, 0, 5 + $height * $percent, 55, $height, $color2 );
//output the image
imagepng($im);
imagedestroy($im);
?>
答案 1 :(得分:1)
或者,您是否考虑过使用纯CSS?这是一些快速的代码,我画了。它可能比这更干净,但你可以得到这个想法:
<?php
$v = (int)$_GET['v'];
$font_size_offset = 9.25; // you'll have to play with this, to get it just right.
// alter it based on the size of the font you use for #label.
if($v < 0 || $v > 100) { $v = 0; }
?>
<style type="text/css">
#container {
height: 400px;
width: 100px;
border: 1px solid black;
}
#fill_wrapper {
width: 100%;
position: relative;
top: <?php echo ($v < 10) ? (100 - $font_size_offset - $v) : (100 - $v); ?>%;
}
#label {
font-size: 32px;
padding-left: 10px;
color: black;
}
#fill {
width: 100%;
height: <?php echo $v; ?>%;
background-color: red;
}
</style>
<div id="container">
<div id="fill_wrapper">
<?php if($v < 10) { echo '<span id="label">' . $v . '%</span>'; } ?>
<div id="fill">
<?php if($v >= 10) { echo '<span id="label">' . $v . '%</span>'; } ?>
</div>
</div>
</div>
根据你的需要设计样式...
答案 2 :(得分:0)
尝试使用内置的GD库。 http://ca3.php.net/manual/en/ref.image.php
答案 3 :(得分:0)
看看PHP GD。它为您提供图像处理/创建。
答案 4 :(得分:0)
尝试使用bootstrap,他们有很好的基于CSS的插件用于此类事情!