Php dinamik durum çubuğu görüntü oluşturma

5 Cevap php

Ben php görüntü oluşturulması için yeni duyuyorum.

Eğer param değerini değiştirirseniz, bar ilerleme da geçti değere değiştirilmesi gerekir

Nasıl böyle bir şey uygulayabilirsiniz?

Herkes biraz ışık tutabilir eğer ben minnettar olacaktır

Inadvance yardım için teşekkürler

GÜNCELLEME: Ben kendim, önerileriniz için Greg ve teşekkür bunu anladım ... bu kodu test edin

<?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);

?>

5 Cevap

Php GD kullanarak aşağıdaki satırları kullanabilirsiniz:

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);

?>

Alternatif olarak, saf CSS kullanarak kabul var? İşte bazı hızlı kod ben çizdim, olduğunu. Bu daha temiz olabilir, ama fikir edinebilirsiniz:

<?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>

Bunu istediğiniz kadar stil ...

PHP GD bir göz atın. Size resim işleme / oluşturulmasını sağlar.

http://php.net/manual/en/book.image.php

Ön yükleme kullanmayı deneyin, bu kindof şey için büyük css tabanlı eklentileri var!