在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中创建动态状态栏图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在黑莓的状态栏右侧创建通知图标?

如何根据前景图像在android中动态更改状态栏的颜色?

如何在 php 中配置状态栏(就像linkedin状态栏)[关闭]

搜索控制器中的搜索栏重叠状态栏

如何使用phonegap在状态栏上创建通知

如何在反应打字稿的导航栏中创建动态元素