在php中创建动态状态栏图像
Posted
技术标签:
【中文标题】在php中创建动态状态栏图像【英文标题】:Dynamic status bar image creation in php 【发布时间】:2010-05-14 21:30:09 【问题描述】:我是 php 中图像创建的新手。
如果更改参数值,栏进度也应更改为传递值
我怎样才能实现这样的东西?
如果有人能解释一下,我将不胜感激
感谢您的提前帮助
更新:我自己想通了,谢谢 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);
?>
【问题讨论】:
【参考方案1】:在php中使用GD可以使用如下sn-p:
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);
?>
【讨论】:
谢谢,但它只是创建了一个黑色图像.. 没有别的请检查 听起来您希望有人为您编写解决方案,而不是自己做任何跑腿工作。 修正错别字。对不起。此外,颜色很讨厌。您可能需要自己选择。【参考方案2】:或者,您是否考虑过使用纯 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>
按照您的喜好设置样式...
【讨论】:
你的想法很好,但我不是css专家......我不能让内部div从底部开始:( 哦,我没有从顶部开始考虑,当我看到这个问题时,我只是用手写出来的。你可以做的是通过相对于父框的定位来抵消它。当我有机会时,我会整理一个解决方案并将其复制到这里。在此之前查找 CSS 绝对和相对定位。 那太棒了...谢谢乔丹 你去吧,完整的例子。如果需要,请复制和粘贴。【参考方案3】:试试它内置的 GD 库。 http://ca3.php.net/manual/en/ref.image.php
http://ca3.php.net/manual/en/function.imagecreate.php
【讨论】:
是的,我在 php.net 中检查过,但是存在的函数太多了.. 我只需要一些代码帮助 他发给你的页面上有编码帮助【参考方案4】:看看 PHP GD。它为您提供图像处理/创建。
http://php.net/manual/en/book.image.php
【讨论】:
【参考方案5】:尝试使用引导程序,他们有很棒的基于 css 的插件来处理这种事情!
【讨论】:
以上是关于在php中创建动态状态栏图像的主要内容,如果未能解决你的问题,请参考以下文章